2013-08-01 2 views
0

У меня есть главная форма, и я хотел бы, чтобы нажать на кнопку, и есть веб-страница отображается в новой форме с помощью элемента управления WebBrowser, это то, что у меня есть:Открыть новую форму из главной формы и использования WebBrowser

private void button1_Click(object sender, EventArgs e) 
    { 
     Form1 MyForm = new Form1(); 

     MyForm.ShowDialog(); 



     MyForm.webBrowser1.Navigate("http://www.twitter.com/"); 
    } 

Основное название формы - «Twitter», это ошибка, которую я получаю: «Twitter.Form1.webBrowser1» недоступен из-за уровня защиты. Кажется достаточно простым. Как я могу это сделать?

+1

(1) Сделать webBrowser1 общественным членом класса Form1. (2) AFAIK ShowDialog не вернется, пока MyForm не будет закрыт. – kol

+1

@kol правильно, измените его на 'MyForm.Show()', если вы хотите, чтобы он сразу перешел к следующей строке и перемещался. Конечно, чтобы _really_ сделать это правильно, вы передадите этот URL как параметр в конструктор для MyForm, сохраните его в частном члене, а затем вызовите 'Navigate' в методе' Shown' 'MyForm'. Тогда вам не нужно было бы выставлять 'webBrowser1' другому классу (-ам), и вы все равно можете использовать' ShowDialog() 'и сохранить возможность ждать' FormClosed() ', чтобы произойти, прежде чем продолжить. – DonBoitnott

ответ

5

Выберите веб-браузер в дизайнере. В окне «Свойства» измените свойство «Модификаторы» на «Публичный».

+0

Хорошо. Изменены «модификаторы» на «Public» и избавились от этой ошибки, но форма никогда не открывается? Я не думаю, что мне нужен MyForm.ShowDialog(); линия?? – eltel2910

+1

ShowDialog автоматически открывает окно, поэтому вы не достигнете следующей строки. Измените его на Показать() – EricLaw

1

Перейти в файл designer.cs вашей формы и изменить

private WebBrowser webBrowser1; 

к этому:

public WebBrowser webBrowser1; 
0

Ok. Всем спасибо. Уточнить; для выполнения этой работы я должен был:

  1. Выберите веб-браузер в дизайнере. В окне «Свойства» измените свойство «Модификаторы» на «Публичный».
  2. Добавить MyForm.show();

    private void button1_Click(object sender, EventArgs e) 
    { 
        Form1 MyForm = new Form1(); 
    
        MyForm.Show(); 
    
    
    
        MyForm.webBrowser1.Navigate("http://www.twitter.com/"); 
    } 
    
Смежные вопросы