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 }
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 }
3.清空粘贴板
1 /// <summary> 2 /// 清空粘贴板 3 /// </summary> 4 private void ClearClipboard() 5 { 6 Clipboard.Clear(); 7 }
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 }