C# 从主窗体打开新窗体并使用WebBrowser
我有一个主窗体,我想单击一个按钮,并使用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/");
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;
嗯。谢谢大家。澄清;为了使这项工作顺利进行,我必须:
嗯。谢谢大家。澄清;为了使这项工作顺利进行,我必须:
(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()