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

时间:2009-04-09 18:51:14

标签: c# winforms webbrowser-control

如何从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.
        }
    }
}

3 个答案:

答案 0 :(得分:2)

除了不是静态的(如上所述),你还必须确保你正在执行的是在应用程序的“主线程”上。这是处理事件的相同线程(例如从应用程序处理“click事件”),所以如果你从那里调用方法,那么你很好,但如果没有,你必须包装一个Invoke( )或BeginInvoke()调用Navigate()。

答案 1 :(得分:1)

您无法从静态函数访问实例成员,将函数声明更改为

    public void MyFunct(){
            myWebBrowserControl.Navigate("http://www.google.com"); 
    }

public void MyFunct(){ myWebBrowserControl.Navigate("http://www.google.com"); }

答案 2 :(得分:0)

让MyFunct不是静态的。