我正在尝试将一个对象复制到 Windows 剪贴板上,然后再次关闭。我的代码是这样的:
复制到剪贴板:
Clipboard.Clear();
DataObject newObject = new DataObject(prompts);
newObject.SetData(myString);
Clipboard.SetDataObject(newObject);
在哪里prompts
Đúng List
收藏。
复制剪贴板:
IDataObject dataObject = System.Windows.Forms.Clipboard.GetDataObject();
if (dataObject.GetDataPresent(typeof(List)))
{
Type type = typeof(List);
Object obj = dataObject.GetData(type);
return (List)dataObject.GetData(type);
}
GetFormats()
显示列表中的格式和 GetDataPresent(List)
返回 true 但如果我尝试从 Clipboard
中获取对象用GetData(List)
上课我得到 null 的返回。
有谁知道哪里出了问题?
好的,我尝试将我的用户类型列表添加到剪贴板并将其取回...这是我尝试过的:
我的用户类:
public class User
{
public int Age { get; set; }
public string Name { get; set; }
}
其余代码:
// Create User list and add some users
List users = new List();
users.Add(new User { age = 15, name = "Peter" });
users.Add(new User { age = 14, name = "John" });
// Lets say its my data format
string format = "MyUserList";
Clipboard.Clear();
// Set data to clipboard
Clipboard.SetData(format, users);
// Get data from clipboard
List result = null;
if (Clipboard.ContainsData(format))
result = (List)Clipboard.GetData(format);
...结果为 null
:)...直到我将 User
类标记为 Serializable
[Serializable]
public class User
{
//...
}
之后我的代码就可以工作了。好的,这不是答案,但也许它可以帮助您。
Tôi là một lập trình viên xuất sắc, rất giỏi!