VB.NET中调用系统的剪贴板完成数据的复制和粘贴

程序环境:VS2010 设置的复制键:F7 粘贴键:F8

为什么说是共用的剪贴板呢?

因为程序运行后,点击键盘的F7键,完成复制事件。点击F8键可以看到文本被成功的复制过去了,但是如果在桌面上新建一个TXT文档,在里面输入一些内容,复制这些内容那个,再切回到我们的程序,点击F8键,粘贴内容,会发现内容改变了。这是因为在TXT文档中也是调用的System.Windows.Forms.Clipboard,在文档中复制时,剪切板的数据被清除掉了。


下面是代码

1.主窗体的键盘捕获事件中添加代码

    ' 捕获键盘操作
    Private Sub Form1_KeyDown(ByVal sender As System.Object,ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        If e.KeyCode = Keys.F7 Then
            CreateClipBoard(TextBox1.Text)
        ElseIf e.KeyCode = Keys.F8 Then
            PasteClipBoard()
        End If
    End Sub

2.如果要成功捕获事件,需要先设置主窗体优先接收键盘事件;
Me.KeyPreview = True ' 主窗体优先捕获键盘
3.方法:将需要复制的数据添加到剪贴板中;
    ' 拷贝复制数据到粘贴板
    Private Sub CreateClipBoard(ByVal copyText As String)
        Clipboard.Clear() ' 清除剪贴板
        Clipboard.SetText(copyText) ' 拷贝数据到粘贴板
    End Sub

4.方法:将剪贴板的数据粘贴到指定控件中去;
    ' 获取粘贴板数据到文本框
    Private Sub PasteClipBoard()
        TextBox2.Text = Clipboard.GetText()
    End Sub

详细代码请猛戳: 代码

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...