列表框不显示项目

时间:2011-12-13 13:35:51

标签: c# winforms listbox

我希望我的项目列表在列表框中但是当我尝试

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的另一个实例。 谢谢你的帮助。

4 个答案:

答案 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)

首先尝试清除项目,然后尝试添加