c# 拷贝粘贴数据

1.将数据拷贝到粘贴板

  SetDataObject(object); 清除剪贴板然后,然后将非持久性数据置于其中;仅限与当前程序使用

  SetDataObject(object,Boolean); 清除剪贴板并将数据置于系统剪贴板中,且指定在退出应用程序后是否将数据保留在剪贴板中。

  SetDataObject(Object, Boolean, Int32, Int32) ;清除剪贴板并尝试指定的次数,以将数据置于系统剪贴板中,且两次尝试之间具有指定的延迟,可以选择在退出应用程序后将数据保留在剪贴板中。

  

 1     /// <summary>
 2     /// 拷贝
 3     /// </summary>
 4     private void Copy()
 5     {
 6       //拷贝数据到粘贴板,仅限于当前程序,关闭程序后粘贴板内容清空
 7       Clipboard.SetDataObject(CopyData);
 8 
 9       //拷贝数据到粘贴板,整个系统内,关闭程序后也可在任何地方粘贴
10       //只有true才可,false相当于上面方法
11       Clipboard.SetDataObject(CopyData,true);
12 
13       //拷贝数据到粘贴板,整个系统内,关闭程序后也可在任何地方粘贴
14       //拷贝三次,每次间隔200ms,在使用拷贝数据的接口时,可能粘贴板正在被占用,这时会导致设置数据失败
15       //所以使用该方法,多次设置
16       Clipboard.SetDataObject(CopyData, true,3,200);
17     } 
View Code

 

2.粘贴数据

  public static IDataObject GetDataObject();   返回: IDataObject,表示系统剪贴板中当前的数据;如果剪贴板中没有数据,则为 null

  public static object GetData (string format);   参数:要检索的数据的格式。 请参见 DataFormats 以获取预定义的格式 ,

                      返回:表示剪贴板数据的 object;如果剪贴板中包含的数据都不是指定 format,也无法转换为该格式,则为 null

  public static string GetText (); 从剪贴板中检索 Text 或 UnicodeText 格式的文本数据(取决于操作系统)。

               f返回:剪贴板文本数据;如果剪贴板中不包含 Empty 或 Text 格式的数据(取决于操作系统),则为 UnicodeText

  public static string GetText (System.Windows.Forms.TextDataFormat format); 返回:剪贴板文本数据;如果剪贴板中不包含指定格式的数据,则为 Empty

  

 1  /// <summary>
 2  /// 粘贴
 3  /// </summary>
 4  private void Paste()
 5  {  
 6    string data;
 7 
 8       //这四种方式是等效的,都是获取文本数据
 9 
10       //获取粘贴板的对象,没有数据将返回null
11 
12       if (Clipboard.ContainsData(DataFormats.Text))
13       {
14         IDataObject dataObject = Clipboard.GetDataObject();
15 
16         //将粘贴的数据转换成string
17         data = dataObject.GetData(DataFormats.Text)?.ToString();
18       }
19 
20       //直接通过GetData获取数据
21 
22       //object objData = Clipboard.GetData(DataFormats.Text);
23 
24       //if(objData!= null)
25       //{
26         // data = objData.ToString();
27       //}
28 
29       //也可以使用下面方法获取string
30 
31       if(Clipboard.ContainsText())
32 
33       {
34 
35         //data = Clipboard.GetText();
36 
37       }
38      
39 
40       //也可以使用下面方法获取string
41       //data = Clipboard.GetText(TextDataFormat.Text);
42 
43       MessageBox.Show("粘贴的文本未:" + data);
44     }
View Code

 

3.清空粘贴板

1     /// <summary>
2     /// 清空粘贴板
3     /// </summary>
4     private void ClearClipboard()
5     {
6       Clipboard.Clear();
7     }
View Code

 

4.拷贝和粘贴图片

  

 1         /// <summary>
 2         /// 拷贝图片到粘贴板
 3         /// </summary>
 4         /// <param name="image"></param>
 5         private void CopyImage(Image image)
 6         {
 7             Clipboard.SetImage(image);
 8         }
 9 
10         /// <summary>
11         /// 粘贴图片
12         /// </summary>
13         /// <returns></returns>
14         public Image PasteImage()
15         {
16             Image image = null;
17             if (Clipboard.ContainsImage())
18             {
19                 image = Clipboard.GetImage();
20             }
21             return image;
22         }       
View Code

 

 

  

 

posted @ 2021-04-20 19:05  一只年轻的小码熊  阅读(952)  评论(0编辑  收藏  举报