Button backgroundWorker内部的启用按钮功能

Button backgroundWorker内部的启用按钮功能,button,c++-cli,Button,C++ Cli,我正在使用windows窗体应用程序创建gui。我用几个按钮创建了一个表单。第一个按钮button1的功能是从硬盘读取视频并将其显示到picturebox。按钮1代码的最后一行是启用另一个按钮: button2->Enabled = true; Button1代码位于backgroundworker内部。这样做的结果是,它可以正常工作,但无法启用按钮2。使用backgroundworker内部的按钮属性是否存在问题?您必须使用BeginInvoke方法和操作委托,因为backgroun

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

 button2->Enabled = true;

Button1代码位于backgroundworker内部。这样做的结果是,它可以正常工作,但无法启用按钮2。使用backgroundworker内部的按钮属性是否存在问题?

您必须使用BeginInvoke方法和操作委托,因为backgroundworker DoWork不会修改UI

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

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