Visual C#是微軟.Net框架中的一個重要的程序開發語言,雖然在.Net框架中還有其他的程序開發語言,但微軟似乎對Visual C#更喜愛有加。這同時也就決定了Visual C#在.Net框架中的地位,以及他以後的發展前途。由於針對剪切板方面的編程始終是程序設計的一個重點,當然也可以算是一個難點。本文將探討如何利用Visual C#進行剪切板編程。本文將結合二個具體的程序例子來介紹Visual C#剪切板編程的二個重要方面:判定剪切板中的數據類型、保存剪切板中的數據。首先來介紹Visual C#如何判定剪切板中的數據類型的。
剪切板中可以存放許多類型的數據,而Visual C#可以判定剪切板中的數據類型大致有21種,這其中包括位圖(Bitmap)、文本(Text)、超文本(Html)等,由於類型比較將多,本文將只介紹比較典型的數據類型,對於其他的數據類型,操作方法基本類似。
一. 本文程序設計和運行的環境:
(1).微軟公司視窗2000服務器版
(2)..Net FrameWork SDK Beta 2
二. 介紹程序中使用到的類和接口:
Visual C#判斷剪切板中的數據類型,要使用到.Net FrameWork SDK中二個類(Class)和一個接口(Interface),具體的就是:Clipboard類、DataFormats類和IdataObject接口。這三者的作用是:Clipboard類是一個不可以繼承的類,他的主要作用是通過自身的方法來實現在計算機系統的剪切板中存放和獲得數據。DataFormats類主要是提供了一個預先設定好的剪切板數據類型,並可以被IdataObject接口調用來判定剪切板數據類型。IdataObject接口提供了一個自由格式的裝置來傳輸數據。下面就結合這些類和接口來具體看一下,具體的使用方法。
三. Visual C#判定剪切板數據類型的解決思路以及重要步驟的解決辦法:
(1).首先要讀取剪切板中的數據內容:
Clipboard類中有一個方法叫GetDataObject ( ),此方法的作用就是讀取當前剪切板中的數據內容。要把讀取了當前剪切板中數據存放起來,這就要用到IdataObject接口,這個接口可以使用在Clipboard類和Drag and Drop的操作中。下面這些代碼就是讀取把當前剪切板中的數據內容並存放起來。
IDataObject d = Clipboard.GetDataObject ( ) ;
(2).判定當前剪切板中的數據類型:
在IdataObject接口中有一個方法名稱是GetDataPresent ( ),這個方法的作用是檢測存放在接口的數據是否是指定的數據類型或者可以轉換成指定的數據類型。他的返回值是布爾型,True表示為指定的數據類型或者可以轉換成指定的數據類型。False於上面意思相反。下面語句實現的功能是判定當前剪切板的數據內容是否為位圖、文本和超文本的,具體如下:
if ( d.GetDataPresent ( DataFormats.Bitmap ) ) { Console.WriteLine ( "當前剪切板中的數據類型是位圖!" ) ; } else if ( d.GetDataPresent ( DataFormats.Text ) ) { Console.WriteLine ( "當前剪切板中的數據類型是文本!" ) ; } else if ( d.GetDataPresent ( DataFormats.Html ) ) { Console.WriteLine ( "當前剪切板中的數據類型是超文本!" ) ; } else { Console.WriteLine ( "當前剪切板中的數據類型是其他類型數據!" ) ; }
四. 程序源代碼:
通過上面的介紹,我們不難理解下面這些程序代碼,這些程序代碼的功能就是判定當前剪切板中的數據是什麼類型。具體如下:
using System ; using System.Windows.Forms ; public class MyClipboard { public static void Main ( string [ ] args ) { IDataObject d = Clipboard.GetDataObject ( ) ; if ( d.GetDataPresent ( DataFormats.Bitmap ) ) { Console.WriteLine ( "當前剪切板中的數據類型是位圖!" ) ; } else if ( d.GetDataPresent ( DataFormats.Text ) ) { Console.WriteLine ( "當前剪切板中的數據類型是文本!" ) ; } else if ( d.GetDataPresent ( DataFormats.Html ) ) { Console.WriteLine ( "當前剪切板中的數據類型是超文本!" ) ; } else { Console.WriteLine ( "當前剪切板中的數據類型是其他類型數據!" ) ; } } }
五. Visual C#保存剪切板數據的解決思路以及重要步驟的解決辦法:
用Visual C#保存剪切板中的數據要使用的類和接口和判定剪切板中的數據類型基本一樣。但由於要讀取剪切板數據,就需要用到了IdataObject接口的方法GetData ( ),這個方法的作用就是獲得指定類型的數據內容。他的語法為: