跨线程 Winforms 控件编辑

5
如何在 Windows 窗体元素中编辑文本,如果编辑文本的代码“属于”与包含 Windows 窗体的线程不同的线程?我收到了以下异常信息:
“跨线程操作无效:从创建它的线程以外的线程访问控件 'textBox1'。”
谢谢。

请展示代码...因为这样对我们帮助不够! - t0mm13b
https://dev59.com/wnRB5IYBdhLWcg3wUVtd - Anthony
1个回答

29

你需要使用 Control.Invoke 方法,像这样:

textbox1.Invoke((MethodInvoker)(() =>
   {
     textbox1.Text="some text";
   }));

也可以查看这篇文章:UI界面的多线程


Action y; 插入类中并执行代码 label1.Invoke(y = () => label1.Text = "任何文本"); - Antonio Leite

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接