cuốn sách gpt4 ai đã làm

c# - 剪贴板 将对象复制到和从中复制

In lại Tác giả: Hồ Xil 更新时间:2023-11-01 08:37:19 25 4
mua khóa gpt4 Nike

我正在尝试将一个对象复制到 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 的返回。

有谁知道哪里出了问题?

câu trả lời hay nhất

好的,我尝试将我的用户类型列表添加到剪贴板并将其取回...这是我尝试过的:

我的用户类:

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
{
//...
}

之后我的代码就可以工作了。好的,这不是答案,但也许它可以帮助您。

关于c# - 剪贴板 将对象复制到和从中复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9032673/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress