2017-09-14 21 views
-1

我有几个NumericUpDowns看起来像这样:创建NumericUpDowns数组并禁用所有这些数组?

public void numericUpDown1_ValueChanged (object sender, EventArgs e){} 

现在,如果他们中的一个达到一定值时,他们都得到禁止。我这样做,用下面的代码如下

if(Value == 0) 
{ 
    numericUpDown1.Enabled = false; 
    numericUpDown2.Enabled = false; 
    numericUpDown3.Enabled = false; 
    ..... 
} 

依此类推。

我的问题是:我可以声明一个数组在我的公共形式或包括所有NumericUpDowns我想禁用,然后禁用它们调用数组?

+2

把它们放在一个面板中,禁用面板。 –

回答

1

如果您使用的是.NET 3.5或更新一个您可以通过访问类型的所有控件:

var my controls = Controls.OfType<NumericUpDown>(); 

而且通过迭代:

foreach(var control in controls) 
{ 
    if(controls.Where(control => control.Value == 0).Any()) 
    { 
     control.Enabled = false; 
    } 
} 
+0

@Bartosz ...它会永远失效......你错过了价值条件......价值应该是零 – Abhay

+0

这是真的。在foreach循环中添加if语句,看看我的答案。它已经被编辑了。 – Bartosz

+1

如何在'foreach'后面使用'Where'?另外'if(control.value == 0) {control.Enabled = false;'是不正确的,因为OP说*如果他们中的一个达到了某个值**他们都会被禁用** * –