如何将相同的属性分配给winform类列表?

时间:2018-01-09 22:54:18

标签: c#

我有一个winform控件(文本框,复选框,单选按钮等)的arraylist。

我正在尝试一次性启用/禁用它们。

代码如下:

Button button = new Button();
Label label = new Label();
Listview listview = new ListView();

ArrayList controlList = new ArrayList();

controlList.add(button);
controlList.add(label);
controlList.add(listview);

foreach(object o in controlList) {
    o.enabled = false;
}

但是,当然,这不起作用,因为类对象中没有“启用”属性。

我该怎么做才能使这项工作?

2 个答案:

答案 0 :(得分:2)

您应该使用 List< Control> 。这是所有 System.Windows.Controls 的基类。您可以迭代Control类型的所有属性:




  Button button = new Button();
 Label label = new Label();& #xA; Listview listview = new ListView();

 var controlList = new List< Control>();
 controlList.Add(button);
 controlList.Add(label );
 controlList.Add(listview);

 foreach(控制列表中的var o){
 o.Enabled = false;
}
  



答案 1 :(得分:0)

变化:

o.enabled = false;

(o as Control.enabled = false;