C#:设置活动窗体,更改该窗体上的字段
我正在尝试向列表框1中添加一个项目,该项目位于表单5的表单4上。我研究了一下,在这个网站上找到了一个应该有效的答案:C#:设置活动窗体,更改该窗体上的字段,c#,winforms,C#,Winforms,我正在尝试向列表框1中添加一个项目,该项目位于表单5的表单4上。我研究了一下,在这个网站上找到了一个应该有效的答案: var form = Form.ActiveForm as Form4; form.listBox1.Items.Add("aaa"); 我得到一个“NullReferenceException”。这就是我找到的解决方案,但我甚至不明白为什么它会起作用。我的Form4实例称为formfour,我从主窗体创建如下内容: Form4 formfour = new Form4();
var form = Form.ActiveForm as Form4;
form.listBox1.Items.Add("aaa");
我得到一个“NullReferenceException”。这就是我找到的解决方案,但我甚至不明白为什么它会起作用。我的Form4实例称为formfour,我从主窗体创建如下内容:
Form4 formfour = new Form4();
formfour.Show();
listBox1修饰符设置为public。格式5
Form4 frm4= new Form4();
frm4.listbox.Items.Add("aaa");
// make sure that the listbox on form4 is set to public from its properties
要刷新form4,请使用
frm4.refresh();
要了解更多信息,请查看此您获得
NullReferenceException
的原因是您当前的ActivityForm
未被强制转换为Form4
,这就是您在实例表单中获得null
的原因
从问题中可以看出,您已经打开了Form4
,并且希望将该表单设置为活动:
您可以使用属性并获取Form4
的实例,如:
Form4 form = Application.OpenForms["Form4"] as Form4;
if(form != null)
form.Focus();
此外,如果要将项目添加到现有表单的列表框中,则:
form.listBox1.Items.Add("aaa");
但那会创造一个新的表格4不?如果我想将其添加到已打开的表单中,该怎么办?然后使用您已创建的实例打开表单,将项目添加到列表中并刷新表单4。