C# 从主窗体打开新窗体并使用WebBrowser

C# 从主窗体打开新窗体并使用WebBrowser,c#,forms,C#,Forms,我有一个主窗体,我想单击一个按钮,并使用WebBrowser控件以新窗体显示一个网页,这就是我所拥有的: private void button1_Click(object sender, EventArgs e) { Form1 MyForm = new Form1(); MyForm.ShowDialog(); MyForm.webBrowser1.Navigate("http://www.twitter.com/");

我有一个主窗体,我想单击一个按钮,并使用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”由于其保护级别而不可访问。看起来很简单。如何执行此操作?

在设计器中选择WebBrowser。在“属性”窗口中,将“修改器”属性更改为“公共”。在设计器中选择WebBrowser。在“属性”窗口中,将“修改器”属性更改为“公共”。

进入表单的Designer.cs文件并更改

private WebBrowser webBrowser1;
对此:

public WebBrowser webBrowser1;

进入表单的Designer.cs文件并更改

private WebBrowser webBrowser1;
对此:

public WebBrowser webBrowser1;

嗯。谢谢大家。澄清;为了使这项工作顺利进行,我必须:

  • 在设计器中选择WebBrowser。在“属性”窗口中,将“修改器”属性更改为“公共”
  • 添加MyForm.show()


  • 嗯。谢谢大家。澄清;为了使这项工作顺利进行,我必须:

  • 在设计器中选择WebBrowser。在“属性”窗口中,将“修改器”属性更改为“公共”
  • 添加MyForm.show()


  • (1) 使webBrowser1成为Form1类的公共成员。(2) 在MyForm关闭之前,AFAIK ShowDialog不会返回。@kol是正确的,如果您想让它立即转到下一行并导航,请将其更改为
    MyForm.Show()
    。当然,要真正做到这一点,您需要将该URL作为参数传递到MyForm的构造函数中,将其存储在一个私有成员中,然后在
    MyForm的
    方法中调用
    Navigate
    。这样,您就不必将
    webBrowser1
    公开给其他类,您仍然可以使用
    ShowDialog()
    并保留在继续之前等待
    FormClosed()
    出现的功能。(1)使webBrowser1成为Form1类的公共成员。(2) 在MyForm关闭之前,AFAIK ShowDialog不会返回。@kol是正确的,如果您想让它立即转到下一行并导航,请将其更改为
    MyForm.Show()
    。当然,要真正做到这一点,您需要将该URL作为参数传递到MyForm的构造函数中,将其存储在一个私有成员中,然后在
    MyForm的
    方法中调用
    Navigate
    。这样,您就不必将
    webBrowser1
    公开给其他类,您仍然可以使用
    ShowDialog()
    并保留等待
    FormClosed()
    发生后再继续的功能。确定。将“修饰符”更改为Public并消除了错误,但表单从未打开?我想我不需要MyForm.ShowDialog();行??ShowDialog以模式打开窗口,因此您不会到达下一行。将其更改为Show()Ok。将“修饰符”更改为Public并消除了错误,但表单从未打开?我想我不需要MyForm.ShowDialog();行??ShowDialog以模式打开窗口,因此您不会到达下一行。将其更改为Show()