控制太多列表框(C#)

时间:2010-04-17 11:41:43

标签: c# combobox listbox controls visible

我有近200个列表框。我正根据数据库中的变量改变其可见性。

所以我想,我准备了一个arraylist。像这样

ListBox[] lbs = this.Controls.OfType<ListBox>().ToArray();

并像这样使用。

for (int idx = 0; idx < Convert.ToInt32(ds.Tables[j].Rows[i][2])*12; idx++)
     lbs[idx].Visible = true;

此代码写入comboboxchange。现在一切都好。但;

示例;

我第一次改变组合框

1-20 listboxes visible = true

我再次改变了组合框

不是1-20。 20,40改变:S怎么可能,你能告诉我一个替代阵列列表类型,还是其他方式?

1 个答案:

答案 0 :(得分:1)

我不确定为什么你一次需要200个列表框 - 你的客户是否做了让你生气的事情?

200个列表框是大量的列表框(这是一种礼貌的方式,说“方式太大了”)随处可见,特别是如果(我怀疑)大多数列表框在任何时候都是不可见的。

看起来您已经拥有DataSet中这些列表框的数据(以表格形式)。最好将数据保留在该表单中,并且只在程序需要时创建并填充列表框。

换句话说,不是创建和填充200个列表框,而是在任何时候只能看到其中一些列表框,最好只在需要时创建所需的列表框并在处理它们时进行处理。你已经完成了(并且不要将未使用的那些保持在周围并且看不见)。