【问题标题】:How to access form1.webbrowser from form3?如何从 form3 访问 form1.webbrowser?
【发布时间】:2015-12-17 23:01:31
【问题描述】:

我在 C# Windows 窗体中制作了一个 Web 浏览器,我将表单 3 作为历史记录,表单 3 包含列表框和一个名为 go 的按钮!

我希望 button_click 将 webbrowser1(位于 form1 中)导航到 listbox1.selecteditem.tostring()

在form1构造函数中:

public Form1()
{
    x = new Form3();
    x.Show();
    x.Visible = false;
    InitializeComponent();
}

在打开表单的按钮中 3

{
    x.Visible = true;
}

在表格 3 中显示 go 的按钮:

{
    // namespace.form1.webbrowser1.navigate(listbox1.selecteditem.tostring()); // 
    this.Visible = false;
}

注释行的错误,从form 3访问webbrowser的解决方法是什么!!

【问题讨论】:

标签: c# .net webforms


【解决方案1】:

Form1 传递给Form3 构造函数作为参数:

class Form3
{
    Form1 _parent;
    public Form3(Form1 parent)
    {
        _parent = parent;
    }

    public void Method()
    {
        _parent.webbrowser1.navigate(listbox1.selecteditem.tostring());
        this.Visible = false;
    }
}

另外,创建webbrowser1 public 或者更好地在Form1 中创建一个公共方法:

class Form1
{  
    public void Navigate(string uri)
    {
        webbrowser1.navigate(uri);
    }
}

并从Form3调用它:

    public void Method()
    {
        _parent.Navigate(listbox1.selecteditem.tostring());
        this.Visible = false;
    }

【讨论】:

  • 感谢支持,我做了这一切,它很完美,但是当我制作时 form1 构造函数中有一个小错误:public Form1() { x = new Form3(这是我应该在这里传递的错误) ; x.显示(); x.可见=假;初始化组件(); }
  • @MohammedMoataz x = new Form3(this); - Form1 类的实例
  • 不,它正在工作,我忘了在表单 3 构造函数中初始化组件:D
  • 非常感谢,希望你度过美好的一天:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-20
  • 1970-01-01
  • 2012-10-08
  • 1970-01-01
相关资源
最近更新 更多