兩個(gè)最有用的 Clipboard 方法是 SetText 和 GetText。 用 SetText 和 GetText 方法向剪貼板和從剪貼板傳送數據
SetText 將文本復制到 Clipboard 上,替換先前存儲在那里的文本??蓪?SetText 作為一條語(yǔ)句使用。其語(yǔ)法如下:
Clipboard.SetText data[, format]
GetText 返回存儲在 Clipboard 上的文本。也可將它作為函數使用:
destination = Clipboard.GetText()
將 SetText 和 GetText 方法,和“使用選定文本”中介紹的選擇屬性結合起來(lái)使用,可容易地編寫(xiě)文本框的“復制”,“剪切”和“粘貼”命令。下列一些事件過(guò)程,為以 mnuCopy,mnuCut 和 mnuPaste 命名的控件,實(shí)現了這些命令:
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
注意 如果它們都是菜單控件時(shí),示例會(huì )工作得最好,這是因為 Text1 有焦點(diǎn)時(shí)可使用菜單。
要注意的是 Copy 和 Cut 這兩個(gè)過(guò)程,都要先用 Clear 方法將 Clipboard 清空。(因為可能要以幾種不同的格式在 Clipboard 上放置數據,所以 Clipboard 不應自動(dòng)清空。這在本章后面的“在 Clipboard 上使用多種格式”中有詳細描述。然后,Copy 和 Cut 這兩個(gè)過(guò)程,都用下面的語(yǔ)句將 Text1 中所選擇的文本復制到 Clipboard 上:
Clipboard.SetText Text1.SelText
在“粘貼”命令中,GetText 方法將返回 Clipboard 上當前的文本字符串。然后用一條賦值語(yǔ)句將該字符串復制到文本框的指定位置 (Text1.SelText)。如果當前沒(méi)有被選定的文本,則 Visual Basic 將該文本放置在文本框中插入點(diǎn)處:
Text1.SelText = Clipboard.GetText()
該代碼假定全部文本被傳送到或傳送出文本框 Text1,而用戶(hù)可在 Text1 和其它窗體上的控件之間進(jìn)行復制、剪切和粘貼。
由于 Clipboard 是被整個(gè)環(huán)境所共享的,所以在 Text1 和任何正在使用剪貼板的應用程序之間,也能傳送文本。
使用 ActiveControl 屬性
如果希望“復制”、“剪切”和“粘貼”命令能和任何有焦點(diǎn)的文本框一起工作,可使用 Screen 對象的 ActiveControl 屬性。下列代碼給任何有焦點(diǎn)的控件提供了一個(gè)引用:
Screen.ActiveControl
可將此代碼段當作對控件的任何其它引用一樣使用。如果知道該控件是一個(gè)文本框,就可引用支持文本框的任何屬性,包括 Text、SelText 和 SelLength。下列代碼假定活動(dòng)的控件是一個(gè)文本框,且使用了 SelText 屬性:
Private Sub mnuCopy_Click ()
Clipboard.Clear
Clipboard.SetText Screen.ActiveControl.SelText
End Sub
Private Sub mnuCut_Click ()
Clipboard.Clear
Clipboard.SetText Screen.ActiveControl.SelText
Screen.ActiveControl.SelText = ""
End Sub
Private Sub mnuPaste_Click ()
Screen.ActiveControl.SelText = Clipboard.GetText()
End Sub


