2010-04-17 70 views
0

我有近200个列表框。我正在根据数据库中的变量更改他们的可见性。控制太多列表框(C#)

所以我想,我准备了一个数组列表。像这样

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列表框可见= TRUE

我又改变组合框

不1-20。 20,40改变:S怎么可能,你能告诉我一个另外的数组列表类型,或者另一种方式吗?

回答

1

我不知道为什么你一次需要200个列表框 - 你的客户做了些什么让你发疯?

200列表框是大量的列表框(这是一种有礼貌的说法,“太过分大”)有任何地方,特别是如果(如我怀疑),其中大多数是在任何时候都看不见。

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

换句话说,不是创建并填充200个列表框,然后在任何时候只显示其中的一部分,最好是在需要时创建需要的列表框并将它们处理掉当你完成时(并且不要将未使用的东西保持在隐身状态)。