我希望我的项目列表在列表框中但是当我尝试
时listbox1.Items.Add("Item1");
没有添加任何内容但是 如果我把代码放在表单加载metod它可以工作,但当我从它调用它 它没有单独的代码模块。我认为这是因为另一个例子 该表格正在更新。 但是如何获取活动表单然后添加项目。 我有一个抽象类和树子类,我希望我的子类在列表中,然后在表单上显示。
这是我的第一次尝试,但是这个有效。
private void button1_Click(object sender, EventArgs e)
{
Subclass o = new Subclass();
List<BaseClass> l = new List<BaseClass>();
l.Add(o);
Form1 f = new Form1();
f.AddObjectToListbox(l);
}
然后在我的From1中我得到了
public void AddObjectToListbox(List<BaseClass> l)
{
foreach (Subclass objectname in l.OfType<Subclass>())
{
l.Items.Insert(0, "text" + O.getMetod);
}
}
但是就像现在它只是添加到form1的另一个实例。 谢谢你的帮助。
答案 0 :(得分:0)
你的问题有点模糊......你在哪里调用listbox1.Items.Add(“Item1”);从
e.g。
从Forms类文件中的方法
从另一个文件中的代码
来自其他程序集中的代码,
但是,您可以通过Form类静态方法获取Active Form:
System.Windows.Forms.Form.ActiveForm
这可以帮助
答案 1 :(得分:0)
一个问题可能是在AddObjectToListBox方法中使用“Object”作为类和变量名。 此外,如果您将obj转换为Subclass,但随后将其分配给Object类型的变量,那就没有多大意义了。你可以同时解决这两个问题。
foreach (Subclass obj in l.OfType<Subclass>())
{
lbVehicles.Items.Insert(0, "text" + obj.getMetod);
}
作为第三个,看起来每次点击按钮时你都在创建一个新表单,这是故意的吗?
答案 2 :(得分:0)
Form currentForm = Form.ActiveForm;
ListBox lb = (ListBox)currentForm.Controls.Find("ListboxName", true)[0];
但仍然感谢您查看我的问题。
答案 3 :(得分:-5)
首先尝试清除项目,然后尝试添加