Clipboard剪貼簿物件之應用

Clipboard是VB提供給程式控制剪貼簿的物件,如果想在VB中複製資料到剪貼簿,或是從剪貼簿中取得資料貼到程式中,就必須使用到Clipboard。使用Clipboard,無須再額外引入物件,它是VB程式內的共用物件,表單上無須有Clipboard,就能直接使用Clipboard,是個很方便的東西!

什麼是「剪貼簿」?

在介紹Clipboard以前,先來說說剪貼簿的工作概念吧!剪貼簿是Windows所提供的資料交換中心,任何程式都可以複製資料(文字、圖片等格式)到剪貼簿中,也可以從剪貼簿中抓取資料貼在自己的視窗中。如圖:

剪貼簿教學

不過使用剪貼簿時,不要把剪貼簿當作能依賴的資料儲存所,因為當某程式的資料複製進來時,會把剪貼簿原有的資料覆蓋掉。因此,想從剪貼簿取得資料的一方,應該在提供資料的一方把資料複製到剪貼簿之後,就立刻取下資料。

Clipboard提供的方法

Clipboard.GetFormat '檢查剪貼簿之中是否含有文字或圖片資料
Clipboard.GetText '取得剪貼簿之中的文字資料
Clipboard.SetText '複製文字資料到剪貼簿之中
Clipboard.GetData '取得剪貼簿之中的圖片資料
Clipboard.SetData '複製圖片資料到剪貼簿之中
Clipboard.Clear '清除剪貼簿的內容

GetFormat

由於剪貼簿可以容納多種不同格式的資料,因此使用其中的資料前,必須先檢查剪貼簿中是否含有我們所要的資料,這時就必須使用GetFormat,傳回真假布林值,如果剪貼簿中含有我們所要的資料格式,則傳回True,反之傳回False。其格式如下:

變數 = Clipboard.GetFormat(資料格式)

資料格式

其中「資料格式」又可以是以下設定值:

vbCFText(1):文字格式

vbCFRTF(-16639):Rich Text Format 文字格式

vbCFBitmap(2):點陣圖格式

vbCFDIB(8):與設備無關的點陣圖格式

vbCFPalette(9):調色盤格式

vbCFMetafile(3):Metafile 格式

vbCFEMetafile(14):強化型Metafile 格式

舉例(判斷圖片格式)

舉個小例子:判斷剪貼簿中的資料是否為圖片格式。

1
2
3
4
5
6
7
Sub CheckPicture() '判斷圖片格式
    If Clipboard.GetFormat(vbCFBitmap) Then '判斷Clipboard.GetFormat(vbCFBitmap)的傳回值(True或是False)。在此無透過變數儲存傳回值,直接用If判斷。
        MsgBox "是點陣圖格式!"
    Else
        MsgBox "不是點陣圖格式!"
    End If
End Sub

GetText

想要讀取剪貼簿中的文字格式資料,就要使用GetText。格式如下:

儲存文字的字串變數 = Clipboard.GetText(vbCFText)

以上灰色部分的「(vbCFText)」可省略。

舉例(輸出剪貼簿中的文字資料)

1
2
3
4
5
Sub OutPutGetText() '輸出剪貼簿中的文字資料
    Dim X As String 'X用來儲存剪貼簿的文字資料
    X = Clipboard.GetText '使X儲存Clipboard.GetText的文字資料
    MsgBox X '用Msgbox顯示X變數中的資料
End Sub

SetText

想要將文字複製到剪貼簿之內,就要使用SetText。格式如下:

Clipboard.SetText 文字內容, vbCFText

上面灰色部分的「, vbCFText」可以省略。

舉例(將Text1中的Text資料複製到剪貼簿裡)

1
2
3
Sub CopyText1() '將Text1中的Text資料複製到剪貼簿裡
    Clipboard.SetText Text1.Text '很簡單,就這麼一行,就能將Text1.Text的資料複製到剪貼簿裡
End Sub

GetData

想要讀取剪貼簿中的圖片格式資料,就要使用GetData。格式如下:

貼上圖片的物件 = Clipboard.GetData

舉例(將剪貼簿的圖片貼成Form的背景圖)

1
2
3
Sub GetDataSetFormPicture() '將剪貼簿的圖片貼成Form的背景圖
    Form1.Picture = Clipboard.GetData '一樣很簡單,就這麼一行,就能將表單的背景變成剪貼簿中的圖片。
End Sub

SetData

想要將圖片複製到剪貼簿之內,就要使用SetData。格式如下:

Clipboard.SetText 圖片物件

舉例(將Picture的圖片複製到剪貼簿中)

1
2
3
Sub CopyPicture1() '將Picture的圖片複製到剪貼簿中
    Clipboard.SetData Picture1.Picture '直接將Picture1的圖片複製到剪貼簿裡
End Sub

Clear

如果想要清空剪貼簿儲存的資料,就要使用Clear,用法如下:

1
2
3
Sub CleanClipboard() '清除剪貼簿資料
    Clipboard.Clear '直接清除剪貼簿裡的所有資料
End Sub



Clipboard真是VB十分好用的物件,妥善運用可以使該程式看起來更為聰明!

文章分類:VB6.0|標籤:, , , , , , , ,

迴響已關閉