VB.NET中的Clipboard對(duì)象(在System.Windows.Forms命名空間里)允許你在一個(gè)應(yīng)用程序或幾個(gè)應(yīng)用程序之間存儲(chǔ)和檢索數(shù)據(jù)。使用Clipboard對(duì)象非常簡(jiǎn)單,就像下面這樣:
注釋:拷貝數(shù)據(jù)
Clipboard.SetDataObject(TextBox1.Text)
注釋:粘貼數(shù)據(jù)
TextBox2.Text = Clipboard.GetDataObject().GetData(DataFormats.Text, _ False)
這段代碼對(duì)于簡(jiǎn)單的文本數(shù)據(jù)非常有效;然而,要想在應(yīng)用程序之間復(fù)制和粘貼或者是進(jìn)行其他的操作,你需要提供多種的數(shù)據(jù)格式。你給數(shù)據(jù)提供的可用格式越多,其他應(yīng)用程序就越有可能使用這個(gè)數(shù)據(jù)。
通過(guò)創(chuàng)建一個(gè)DataObject,你可以根據(jù)你的需要把數(shù)據(jù)以多種格式存儲(chǔ)。你還可以用GetDataPresent方法來(lái)檢查某個(gè)格式是否被支持。
下面的代碼介紹了如何用DataObject來(lái)存儲(chǔ)RTF數(shù)據(jù)和文本數(shù)據(jù)。同時(shí),這段代碼還說(shuō)明了如何用GetDataPresent來(lái)查看所有支持的格式。
Dim ClipboardData As New DataObject()
ClipboardData.SetData(DataFormats.Rtf, RichTextBox1.Rtf)
ClipboardData.SetData(DataFormats.Text, RichTextBox1.Text)
Clipboard.SetDataObject(ClipboardData)
If Clipboard.GetDataObject().GetDataPresent(DataFormats.Text) Then
TextBox2.Text = Clipboard.GetDataObject().GetData(DataFormats.Text)
End If
If Clipboard.GetDataObject().GetDataPresent(DataFormats.Rtf) Then
RichTextBox2.Rtf = Clipboard.GetDataObject().GetData(DataFormats.Rtf)
End If
Clipboard及其對(duì)多種格式的支持使得你的應(yīng)用程序可以支持標(biāo)準(zhǔn)的Windows剪切和粘貼功能。通過(guò)為Clipboard提供多種數(shù)據(jù)格式,你還可以把你的應(yīng)用程序和其他應(yīng)用程序更緊湊的整合起來(lái)。