gpt4 book ai didi

c# - 无法将字符串添加到列表框

转载 作者:太空宇宙 更新时间:2023-11-03 15:41:07 26 4
gpt4 key购买 nike

您好,我正在尝试收集 this 的输出库到列表框。

下面是测试项目的部分代码,我已经尝试修改了:

public partial class Form1 : Form
{
D.Net.Clipboard.ClipboardManager Manager;

public Form1()
{
InitializeComponent();
Manager = new D.Net.Clipboard.ClipboardManager(this);
Manager.Type = D.Net.Clipboard.ClipboardManager.CheckType.Text;
Manager.OnNewTextFound += (sender, eventArg) =>
{
button1.Text = eventArg; //just testing, working correctly
listBox1.Items.Add(eventArg); //does not show neither result nor any error
MessageBox.Show(String.Format("New text found in clipboard : {0}", eventArg));
};
}

private void button1_Click(object sender, EventArgs e)
{
listBox1.Items.Add("test"); //working correctly
}
}

问题是,当我尝试将项目添加到列表中时,它什么也没做,而且更多的代码行(在这个函数中)根本不运行。

我试图通过一些自定义类和不同的表达式来修复它,但对我来说没有任何效果(是的,我是个菜鸟)。还尝试用 textBox 来做,结果是一样的,但按钮上的文本会按预期更改。

看起来完全是个蹩脚的问题,但我已经花了将近 5 个小时通过谷歌搜索、阅读微软文档,所以,我能得到的最接近的是 this正如我所见,那里建议的内容已经实现。

最佳答案

OnNewTextFound 事件在 UI 的单独线程上触发,因此您尝试更新 UI 失败。在另一个线程中抛出异常,中止该方法的其余部分,但您的 UI 线程继续执行。

您必须调用 Invoke() 才能在 UI 线程上执行代码:

listBox1.Invoke(new MethodInvoker(delegate { listBox1.Items.Add(eventArg); }));

关于c# - 无法将字符串添加到列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30227008/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com