在backgroundWorker中启用按钮功能

时间:2014-11-03 19:06:54

标签: button c++-cli

我正在使用Windows窗体应用程序来创建gui。我创建了一个带有几个按钮的表单。名为button1的第一个按钮的功能是从硬盘读取视频并将其显示到图片框。 button1代码的最后一行是启用另一个按钮:

 button2->Enabled = true;

Button1代码位于backgroundworker中。结果,它工作正常,但它不启用button2。在backgroundworker中使用按钮属性有问题吗?

1 个答案:

答案 0 :(得分:1)

您必须使用BeginInvoke方法并使用Action委托,因为后台工作者DoWork不会修改UI。

private:
   void DoWork(Object^ /*sender*/, EventArgs^ /*e*/ )
   {
      // some code
      button2->BeginInvoke(gcnew Action(this, &MyForm::ModifyButton) );
   }

   void ModifyButton()
   {
      button2->Enabled = true;
   }