好的,我的网页浏览器(form1)中有一个名为bookmark的按钮。我希望它将URL添加到Form3中的列表框中。当我尝试时,我因错误而出错。
此错误:
但是我将代码更改为:
Form3.AC.listBox1.Items.Add(getCurrentBrowser().Url.ToString());
仍有错误
完整代码:
private void button6_Click(object sender, EventArgs e)
{
Form3.AC.listBox1.Items.Add(getCurrentBrowser().Url.ToString());
}
答案 0 :(得分:2)
您传入了Form3的实例,但是您没有使用该实例,请将您的代码更改为此并开始使用:
private void button6_Click(object sender, EventArgs e)
{
_form.AC.listBox1.Items.Add(getCurrentBrowser().Url.ToString());
}
<强>更新强>
当您实例化AddFavourites类/表单时,您将Form3的实例传递给构造函数:
var frmAddFavs = new AddFavorites(new Form3());
frmAddFavs.Show();
或者如果Form3启动/实例化AddFavorites表单:
var frmAddFavs = new AddFavorites(this);
frmAddFavs.Show();
在AddFavorites的构造函数中,您存储了Form3实例的副本:
public AddFavorite(Form3 form)
{
InitializeComponent();
this._form = form; //<- here we store the Form3 instance
}
在按钮单击中,您正在调用Form3.AC.Listbox...
,但该上下文中的Form3尚未实例化。
我的回答是使用私有成员变量_form
,它是Form3的一个实例。
更新2:
我不明白。我收到_form
的错误
确保将Form3的实例传递给AddFavorites的构造函数。如果你没有传入Form3参数,它将调用默认构造函数(即使它在代码中不可见)。提示:当重载类构造函数并删除无参数构造函数时,无参数构造函数实际上仍然可用。
所以不要这样做:
var frmAddFavs = new AddFavorites();
frmAddFavs.Show();
与此相同:
var frmAddFavs = new AddFavorites(NULL);
frmAddFavs.Show();