C # доступ к элементу управления формы из пользовательской функции - PullRequest
1 голос
/ 09 апреля 2009

Как я могу правильно получить доступ к элементу управления веб-браузера из myFunct ()? 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 ]

2 голосов
/ 09 апреля 2009

Помимо того, что вы не статичны (как было сказано выше), вы также должны убедиться, что то, что вы выполняете, находится в «главном потоке» приложения. Это тот же поток, который обрабатывает события (например, обрабатывает «событие щелчка» из приложения), и поэтому, если вы вызываете метод оттуда, то все в порядке, но если нет, вы ДОЛЖНЫ обернуть Invoke ( ) или BeginInvoke () для вызова Navigate ().

1 голос
/ 09 апреля 2009

Вы не можете получить доступ к членам экземпляра из статических функций, измените объявление функции на

</p> <pre><code> public void MyFunct(){ myWebBrowserControl.Navigate("http://www.google.com"); }

0 голосов
/ 09 апреля 2009

Сделать MyFunct не статичным.

...