我有近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怎么可能,你能告诉我一个替代阵列列表类型,还是其他方式?
答案 0 :(得分:1)
我不确定为什么你一次需要200个列表框 - 你的客户是否做了让你生气的事情?
200个列表框是大量的列表框(这是一种礼貌的方式,说“方式太大了”)随处可见,特别是如果(我怀疑)大多数列表框在任何时候都是不可见的。
看起来您已经拥有DataSet中这些列表框的数据(以表格形式)。最好将数据保留在该表单中,并且只在程序需要时创建并填充列表框。
换句话说,不是创建和填充200个列表框,而是在任何时候只能看到其中一些列表框,最好只在需要时创建所需的列表框并在处理它们时进行处理。你已经完成了(并且不要将未使用的那些保持在周围并且看不见)。