C#从自定义函数访问表单控件

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();

如何从myFunct()中正确访问web浏览器控件?Main.myWebBrowserControl&Main::myWebBrowserControl不工作

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()调用