VB剪貼板操作

 

一、剪貼板概念:

   計算機內存中的一片區域,存放最近從一個文件剪切或複製的內容。包含在剪貼板上的信息可以被插入(粘貼)到其他文檔或應用程序中。

   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、編程練習圖形的複製、剪切和粘貼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章