c#怎样在winform窗体中自动生成label1控件,比如有姓名,性别,年龄三个字段就自动生成三个label来显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#怎样在winform窗体中自动生成label1控件,比如有姓名,性别,年龄三个字段就自动生成三个label来显示相关的知识,希望对你有一定的参考价值。

private void button1_Click(object sender, EventArgs e)

var list = new List<string> "张三", "李四", "王五" ;
for (int i = 0; i < list.Count; i++)

Label lb = new Label();
lb.AutoSize = true;
lb.Location = new System.Drawing.Point((53 + i * 60), 73);
lb.Name = "label1";
lb.Size = new System.Drawing.Size(41, 12);
lb.TabIndex = i;
lb.Text = list[i];
this.Controls.Add(lb);
参考技术A lb.Location = new System.Drawing.Point(73, (53 + i * 60));
把 i 那个变量的 写到 y 参数就OK

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窗体中自动生成label1控件,比如有姓名,性别,年龄三个字段就自动生成三个label来显示的主要内容,如果未能解决你的问题,请参考以下文章

winform 窗体传值刷新问题。

C#winform怎样等所有控件加载完再显示窗体?C#透明窗体显示时闪现黑块怎么解决?

C#winform怎样等所有控件加载完再显示窗体?C#透明窗体显示时闪现黑块怎么解决?

winform中 怎样取消关闭窗体事件

(C#)怎样在一个窗口中调用另一个窗口中的dataGridView

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