0

在回答这个问题之前,让我提供一点背景知识。首先 MyMainForm 开始做两件事,它初始化一个名为 Form2 的表单,然后调用另一个类中的一个方法,将该方法传递一个 Form2 的实例作为参数。这可以从下图中看出。然后该方法RunInThread在新线程中运行不同的方法。现在我想知道的是如何通过 RunInThread 方法更改 form2 上的文本框上的数据。图片也解释了我的场景。我尝试为更改文本框中文本的方法创建一个委托,并且该委托位于 Form2 类中,但是您似乎无法从 RunInThread 方法调用该委托。关于如何通过 RunInThread 方法更改 Form2 文本框中的文本的任何建议。

在此处输入图像描述

4

1 回答 1

1

在方法内部,RunInThread(Form2 frm_) 执行如下操作:

frm_.BeginInvoke( new System.Windows.Forms.MethodInvoker( () => 
   { 
      frm_.myTextBox.Text = "Hey this updated!!"; 
   }));

这将导致通过创建 frm_ 的 Windows 窗体 GUI 线程调用 myTextBox.Text 属性设置器。

于 2012-11-16T02:21:03.270 回答