C#从自定义函数访问表单控件
如何从myFunct()中正确访问web浏览器控件?Main.myWebBrowserControl&Main::myWebBrowserControl不工作C#从自定义函数访问表单控件,c#,winforms,webbrowser-control,C#,Winforms,Webbrowser Control,如何从myFunct()中正确访问web浏览器控件?Main.myWebBrowserControl&Main::myWebBrowserControl不工作 namespace foo{ public partial class Main : Form{ public Main(){ InitializeComponent(); // Do some things... MyFunct();
namespace foo{
public partial class Main : Form{
public Main(){
InitializeComponent();
// Do some things...
MyFunct();
}
public static void MyFunct(){
myWebBrowserControl.Navigate("http://www.google.com"); // causing an error.
}
}
}
使MyFunct不是静态的。如果无法从静态函数访问实例成员,请将函数声明更改为
public void MyFunct(){
myWebBrowserControl.Navigate("http://www.google.com");
}
除了不是静态的(如上所述),您还必须确保您正在执行的是应用程序的“主线程”。这与处理事件(例如处理应用程序中的“单击事件”)的线程相同,因此,如果从那里调用该方法,则可以,但如果不是,则必须围绕Navigate()包装一个Invoke()或BeginInvoke()调用