一、剪贴板概念:
计算机内存中的一片区域,存放最近从一个文件剪切或复制的内容。包含在剪贴板上的信息可以被插入(粘贴)到其他文档或应用程序中。
VB中使用的剪贴板(Clipboard)就是Windows的一个应用程序。它可以提供文档之间的快速数据传送功能。剪贴板为用户提供了一块临时存储数据的空间,用户可以把数据(包括文本、图形等)放进存储区,也可以从存储区读取数据。VB直接支持Windows的Clipboard对象,但Clipboard不是VB本身的对象,所以Clipboard对象既无属性也无事件,但具有若干操作对象的方法。如下表1所示。
表1 Clipboard对象的属性
方法 |
功能 |
Clear |
清除剪贴板上的信息 |
GetData |
从剪贴板上读取图形信息 |
GetText |
从剪贴板上读取文本信息 |
SetData |
将图形拷贝到剪贴板 |
SetText |
将文本拷贝到剪贴板 |
利用这些方法不仅可以实现文本的各类剪贴操作,还可以实现图形的剪贴操作。
二、文本剪贴
在VB窗体上使用的文本框和组合框通过使用Clipboard对象的Clear、GetText、SetText等方法可以很容易地实现文本的复制、剪切、粘贴等功能。
两个最有用的 Clipboard 方法是 SetText 和 GetText。如下图 所示,用这两个方法向剪贴板和从 Clipboard 传送字符串数据。下图 用 SetText 和 GetText 方法向剪贴板和从剪贴板传送数据。
SetText 将文本复制到 Clipboard 上,替换先前存储在那里的文本。可将 SetText 作为一条语句使用。其语法如下:
Clipboard.SetText data[, format]
GetText 返回存储在 Clipboard 上的文本。也可将它作为函数使用:
destination = Clipboard.GetText()
将 SetText 和 GetText 方法,和“使用选定文本”中介绍的选择属性结合起来使用,可容易地编写文本框的“复制”,“剪切”和“粘贴”命令。下列一些事件过程,为以 mnuCopy,mnuCut 和 mnuPaste 命名的控件,实现了这些命令:
Private Sub mnuCopy_Click ()
Clipboard.Clear
Clipboard.SetText Text1.SelText
End Sub
Private Sub mnuCut_Click ()
Clipboard.Clear
Clipboard.SetText Text1.SelText
Text1.SelText = ""
End Sub
Private Sub mnuPaste_Click ()
Text1.SelText = Clipboard.GetText()
End Sub
注意 如果它们都是菜单控件时,示例会工作得最好,这是因为 Text1 有焦点时可使用菜单。
要注意的是 Copy 和 Cut 这两个过程,都要先用 Clear 方法将 Clipboard 清空。(因为可能要以几种不同的格式在 Clipboard 上放置数据,所以 Clipboard 不应自动清空。这在本章后面的“在 Clipboard 上使用多种格式”中有详细描述。然后,Copy 和 Cut 这两个过程,都用下面的语句将 Text1 中所选择的文本复制到 Clipboard 上:
Clipboard.SetText Text1.SelText
在“粘贴”命令中,GetText 方法将返回 Clipboard 上当前的文本字符串。然后用一条赋值语句将该字符串复制到文本框的指定位置 (Text1.SelText)
。如果当前没有被选定的文本,则 Visual Basic 将该文本放置在文本框中插入点处:
Text1.SelText = Clipboard.GetText()
该代码假定全部文本被传送到或传送出文本框 Text1,而用户可在 Text1 和其它窗体上的控件之间进行复制、剪切和粘贴。
由于 Clipboard 是被整个环境所共享的,所以在 Text1 和任何正在使用剪贴板的应用程序之间,也能传送文本。
例题:在窗体文本框Text1中复制或剪切文本,将内容粘贴到文本框Text2中。
(1)、界面:
(2)、代码:
Private Sub Command1_Click()
Clipboard.Clear
Clipboard.SetText Text1.SelText '把第一个文本框所选的文本复制到剪贴板
End Sub
Private Sub Command2_Click()
Clipboard.SetText Text1.SelText
Text1.SelText = ""
End Sub
Private Sub Command3_Click()
Text2.SelText = Clipboard.GetText()
End Sub
(3)、运行效果:
三、图形剪贴
在VB中使用的图形对象,可以通过Clipboard对象的Setdata、Getdata等方法实现图形的剪贴功能。
例题、用命令按钮和图片框演示图形剪贴。
(1)、界面:
给图像框2加载一bmp文件:
(2)、代码:
Private Sub Command1_Click()
Clipboard.Clear
Clipboard.SetData Image1.Picture, 2 '把第一个图片框的位图放入剪贴板
End Sub
Private Sub Command2_Click()
Clipboard.Clear
Clipboard.SetData Image1.Picture
Image1.Picture = LoadPicture("")
End Sub
Private Sub Command3_Click()
Image2.Picture = Clipboard.GetData(2)
'把剪贴板的内容复制到第二个图片框中
End Sub
(3)、运行效果:
四、自测题
1、剪贴板对象的常用属性和方法有哪些?
2、如何实现文本剪贴?
3、如何实现图形剪贴?
4、编写程序,在一个文本框中完成文本的复制、剪切和粘贴。
5、编程练习图形的复制、剪切和粘贴。