将URL从表单传递到包含Web浏览器控件的其他表单

时间:2015-06-03 19:16:56

标签: c# .net forms

我试图将网址从一个表单传递到另一个表单(两者都在同一个项目中)。

第一个表单中包含一个Web浏览器控件。它还有一个按钮,按下按钮即可启动第二个表格。第二种形式只有一个带有硬编码网址的按钮。当用户点击按钮时,url应该传递给第一个表单,webbrowser应该导航到该链接。以下是我尝试的简单代码

Form1中:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public void loadwebpage(string link)
    {
        webBrowser1.Navigate(link);
    }

    private void button1_Click(object sender, EventArgs e)
    {
        secondForm form2 = new secondForm();
        form2.Show();
    }
}

窗体2:

public partial class secondForm : Form
{
    public secondForm()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.Close();
        Form1 form1= new Form1();
        form1.loadwebpage("http://www.google.com");
    }
}

以上代码无效,webbrowser控件无法导航到google页面。任何人都可以帮忙

1 个答案:

答案 0 :(得分:1)

将第一个表单作为参数发送到第二个表单。在第二个表单上,您可以在类上创建一个与第一个表单的类型匹配的属性。

在第二种形式的构造函数中,设置所述属性。

当用户单击第二个表单上的按钮时,引用已设置为第一个表单实例的类的属性并调用loadwebpage函数。

编辑:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public void loadwebpage(string link)
    {
        webBrowser1.Navigate(link);
    } 

    private void button1_Click(object sender, EventArgs e)
    {
        secondForm form2 = new secondForm(this);
        form2.Show();
    }
}

表格2:

public partial class secondForm : Form
{
    public Form1 form1 { get; set;}
    public secondForm(Form1 f)
    {
        form1 = f;
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.Close();

        form1.loadwebpage("http://www.google.com");
    }
}