2011-12-13 92 views
-4

我希望我的项目列表中一个列表框,但是当我尝试列表框不显示项目

listbox1.Items.Add("Item1"); 

被添加什么,但 如果我把在形式加载代码梅托德它的工作原理,但是当我把它从 单独的代码模块它没有。我认为这是因为表单的另一个实例 正在更新。 但我如何获得活动窗体,然后添加项目。 我得到了一个抽象类和树子类,我想要我的子类在列表中,然后显示在窗体上。

这是我第一次尝试,但这剂量的工作。

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

然后在我的1跳转我得到

public void AddObjectToListbox(List<BaseClass> l) 
{ 
     foreach (Subclass objectname in l.OfType<Subclass>()) 
     { 
      l.Items.Insert(0, "text" + O.getMetod);     
     } 
} 

但像它现在它只是添加到Form1的另一个实例。 感谢您的帮助。

+5

向我们展示一些代码。很难看到你的代码是如何工作的,以及实例是什么。 –

+1

请在代码列表框外显示您想要添加项目的代码。 – Fischermaen

+0

抱歉我的问题的解释不好。只是想尽快解决它。我希望这会有所帮助。 – saadan

回答

0

突然你发现你正在寻找自己。 这是做到了。

Form currentForm = Form.ActiveForm; 
ListBox lb = (ListBox)currentForm.Controls.Find("ListboxName", true)[0]; 

但仍然感谢您看我的问题。

-5

先试着明确项目,然后尝试添加

+1

没有明确可以不添加项目... !!!! – Pranav

0

你的问题是痘痘有点模糊......你在哪里调用listbox1.Items.Add(“项目1”);从

例如

从窗体类文件

从另一个文件代码的方法,

从不同的汇编代码,

但是,你可以通过Form类的静态活动表格方法:

System.Windows.Forms.Form.ActiveForm

愿这有助于

+0

首先我尝试使metod静态,但然后我不能使用listbox控制? – saadan

0

一个问题可能是在AddObjectToListBox方法中使用“Object”作为变量名。 另外,如果您将obj转换为Subclass,但是将其分配给Object类型的变量,这没有多大意义。你可以一次解决这两个问题,就像这样。

foreach (Subclass obj in l.OfType<Subclass>()) 
{ 
    lbVehicles.Items.Insert(0, "text" + obj.getMetod);     
} 

作为第三个,它看起来像你每次单击按钮时创建一个新的形式,是故意的吗?

+0

是的,好的可以看到我写了我的例子有点太快,因为在两个地方都不能站立对象。但这只是我的代码的一个示例。是的,我每次都会创建一个新表单,因为我知道如何获得活动表单。就像我在eksempel中所说的那样,我认为这就是为什么它不起作用 – saadan