2013-03-26 64 views
-1

好吧,所以我在我的web浏览器(form1)中有一个名为书签的按钮。我希望它将URL添加到Form3中的列表框中。当我尝试时,我得到一个错误的错误。列表框从按钮添加

此错误:

enter image description here

但我改变了我的代码如下:

Form3.AC.listBox1.Items.Add(getCurrentBrowser().Url.ToString()); 

还是错误

全码:

private void button6_Click(object sender, EventArgs e) 
{ 
    Form3.AC.listBox1.Items.Add(getCurrentBrowser().Url.ToString()); 
} 

回答

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(); 

或者如果AddFavorites形式启动/实例化的Form3:

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:

I dont understand that. I get the error for _form

确保在Form3的一个实例传递给AddFavorites的构造。如果您不传入Form3参数,它将调用默认构造函数(即使它在您的代码中不可见)。提示:当您重载类构造函数并删除无参数类时,无参数类实际上仍然可用。

所以不这样做:

var frmAddFavs = new AddFavorites(); 
    frmAddFavs.Show(); 

这是与此相同:

var frmAddFavs = new AddFavorites(NULL); 
    frmAddFavs.Show(); 
+0

我不明白这一点。我得到_form的错误 – TheEpicBraxton 2013-03-26 03:26:11