本文实例讲述了c#编程实现查看剪切板内容的方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
using system;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.linq;
using system.text;
using system.windows.forms;
namespace windowsformsapplication49
{ public partial class form1 : form
{
public form1()
{
initializecomponent();
}
private void form1_load( object sender, eventargs e)
{
radiobutton1. checked = true ;
picturebox1.visible = false ;
textbox1.visible = true ;
}
//“查看”按钮
private void button1_click( object sender, eventargs e)
{
idataobject data; //为传送数据提供与格式无关的接口
string format = formatstring();
if (format == "bitmap" )
{
textbox1.visible = false ;
picturebox1.visible = true ;
data = clipboard.getdataobject(); //检索位于当前系统剪切板的数据
if (data.getdatapresent(format)) //确定此实例中存储的数据是否与指定的格式关联,返回布尔
{
picturebox1.image = (bitmap)data.getdata(format); //检索与指定的格式关联的数据
picturebox1.sizemode = pictureboxsizemode.stretchimage;
}
else
{
messagebox.show( "格式不正确" , "提示" );
}
}
else
{
textbox1.visible = true ;
picturebox1.visible = false ;
data = clipboard.getdataobject();
if (data.getdatapresent(format))
{
textbox1.text = ( string )data.getdata(format);
}
else
{
messagebox.show( "格式不正确" , "提示" );
}
}
}
private string formatstring()
{
string format = "" ;
if (radiobutton1. checked ) format = dataformats.text; //得到idataobject里面数据的格式
if (radiobutton2. checked ) format = dataformats.rtf;
if (radiobutton3. checked ) format = dataformats.bitmap;
if (radiobutton4. checked ) format = dataformats.html;
return format;
}
}
} |
运行程序后,如果之前复制过bitmap图,则textbox消失,pictruebox出现,并且显示该图;反之如果选择的是后三项,则textbox出现,并且显示复制过的值。效果图如下:
这里有一个问题,如果把文字与图片一起复制的话,就不能显示了。感兴趣的朋友可以加以完善。
希望本文所述对大家c#程序设计有所帮助。