我的按钮和tabcontrol在我的表单上有一些标签。 第二个选项卡上有webbrowser-control。 我使用backgroundworker来创建它的页面。 字符串:
bw.DoWork += new DoWorkEventHandler((s, e) => { webBrowser.DocumentText = "qwerty"; });
是在InitializeComponent()之后的表单构造函数中,只有一个字符串:
bw.RunWorkerAsync();
按钮点击处理程序中的。 运行我的应用程序按下按钮后,我得到“无法获取'WebBrowser'控件的窗口句柄。不支持无窗口ActiveX控件。”但如果我之前选择第二个标签(有webbrowser),它的工作正确。 我该如何解决这个问题?
答案 0 :(得分:0)
在同一个线程上保留所有用户界面方法调用可以解决此问题。 DoWorkEventHandler在另一个线程中运行,但RunWorkerCompletedEventHandler在同一个线程中运行,所以如果我只是将DoWorkEventHandler放入获取数据(形成网页)并将其设置为webBrowserAstrHost.DocumentText propetry到RunWorkerCompletedEventHandler,一切正常。