一、剪貼板概念:
計算機內存中的一片區域,存放最近從一個文件剪切或複製的內容。包含在剪貼板上的信息可以被插入(粘貼)到其他文檔或應用程序中。
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
三、圖形剪貼
在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、編程練習圖形的複製、剪切和粘貼。