c#(winform)怎么修改多个控件的一个共有属性?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#(winform)怎么修改多个控件的一个共有属性?相关的知识,希望对你有一定的参考价值。

窗体上有50个label控件,他们的命名是按照顺序来的,比如:Label1,Label2,Label3……依次,我想在一个按钮事件中设置他们所有的Enabled属性,是不是只有一个一个的来写代码?有没有好的办法?

参考技术A 将所有需要批量操作的对象用一个List<>装起来,List<Label> lib = new List<Label>();
在初始化的时候,lib.Add(Label1);lib.Add(Label2);...
在按钮事件中就遍历这个List
foreach(Label lbl in lib)

lbl.Enabled = false;


如果不仅仅是label,也可以用List<Control> lic = new List<Control>();
参考技术B //遍历控件
foreach (Control cl in this.Controls)

//如果是Label
if (cl is Label)

Label lab = cl as Label;
lab.Enabled = false;//在这里设置

本回答被提问者采纳
参考技术C 你不如把每个tag值设置的稍微有规律一点
名字有规律,只能去反射,效率恐怕很低

c# winform 怎么获取控件

ToolStripMenuItem的click事件,怎么获取被右键点击打开菜单的控件
sender返回的是ToolStripMenuItem
求教!
比如是一个TextBox上点击的打开的
怎么获得TextBox的Name??

为什么总是得到的是父容器的name

参考技术A 属性里面有个叫fathercontrol的好像 太久没搞C#了
你去查查 是控件父类CONTROL类的属性 ,代表父控件
参考技术B 没怎么挺清楚啊
是不是这样 TextBox t = (TextBox)sender;
t.Name你要的名称
参考技术C 获取textBox空件输入的值 this.textbox1.text.trem(); 参考技术D string name = e.ClickedItem.Name; 第5个回答  2011-10-17 不废话上代码。
MessageBox.Show(this.ActiveControl.Name);
有需求继续HI我。追问

不行,取出的是Textbox的父控件的名称

追答

_SCREEN.ACTIVEFORM.ACTIVECONTROL.NAME
我查了下msdn。就是他。你再试试。
http://support.microsoft.com/kb/129425/zh-cn
我应该没看错。

本回答被提问者采纳

以上是关于c#(winform)怎么修改多个控件的一个共有属性?的主要内容,如果未能解决你的问题,请参考以下文章

c# winform的dateTimePicker控件的日历面板的字体怎么调大?

c# winform 控件层次问题

C# winform DataGridView控件DataSource 绑定一个表后修改cell值的问题

c# winform 怎么弄展开收缩的左边菜单 功能 急 在线等

C#中winform的timer控件定时弹窗后,会弹出多个同样的窗口?

C# 做的winform窗体程序把一个Form给为自定义控件?