在c#中运行时修改listBox项

时间:2012-04-08 22:03:32

标签: c# fonts listbox runtime items

我写了一个代码,在运行时将一些项添加到列表框中,现在我无法弄清楚如何访问这些项的属性(特别是FontSize)。

这里有一些代码

 for (int i = 0; i < list.Count; i++)
      {
          trainerRoutine Item = list[i];
          routines_lst.Items.Add(Item.name);
      }

2 个答案:

答案 0 :(得分:2)

很难看出“trainerRoutine”与FontSize有什么关系。通常,ListBox存储对象。您正在使用Item.name将字符串放入Items集合中。这很麻烦,你不能轻易地从那个字符串回到原始对象。而且没有必要,只需添加Item即可。您要做的一件事就是覆盖Item类的ToString()方法,这就是ListBox用来生成可读字符串的方法。所以:

class DontKnowWhat {
   // properties and methods
   //...
   public override string ToString() {
      return name;
   }
}

现在,您可以通过将原始对象转换为DontKnowWhat来简单地从ListBox.Items集合中获取原始对象。


如果您正在讨论更改项目字体大小,水晶球解释编号2,则需要将ListBox的DrawMode属性设置为DrawMode.OwnerDrawVariable。在MSDN文章中有一个很好的例子。

答案 1 :(得分:0)

考虑到像ListBox项一样,你添加一个Item.Name,我想这是一个简单的字符串,我想说对于Font属性你不应该在项内部但是在{ {1}}本身。