C# winform,怎么通过控件的Name属性判断某个控件是不是已经存在
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform,怎么通过控件的Name属性判断某个控件是不是已经存在相关的知识,希望对你有一定的参考价值。
我是想在tabControl中动态添加tabPage,但同样的tabPage只能出现一次,所以我想在添加tabPage前判断该tabPage是否已经存在
if (tabControl1.Controls.Find("控件名字", false).Count(x => x.Name == "控件名字") > 0)//控件存在
else
//控件不存在
但是一般动态生成的时候,都是自己指定不同的name,所以不用去判断是否重重了。 参考技术A 定义一个全局的字典,name是key,tabPage是value。
在tabControl的添加控件和删除控件中分别添加和删除这个字典。
添加前在这个字典中查看下是不是有这个name,还可以根据name来索引tabPage。 参考技术B foreach (Control ctl in tabCon.Controls)
if (ctl is TabPage)
TabPage T= ctl as TabPage;
if(T.属性==XX)
………………;
参考技术C this.Controls.find(name,true)
C# winform 由id获取该控件!
我动态生成string a,如何获取ID为a的控件,以及该控件的位置。又是一天编程~
C#Control里没有ID这个属性只有Name属性 其实就是ID的意思 你可以根据Name属性找到这个控件 代码如下 private void button1_Click(object sender, EventArgs e)string name = "label1";
Control control = null;
foreach (Control item in this.Controls)
control = GetControl(name, item);
if (control != null)
MessageBox.Show("类型是:" + control.GetType().ToString() + "\r\n" +
"坐标是:" + control.Location.ToString());
break;
if (control == null)
MessageBox.Show("没有找到“"+name+"”");
private Control GetControl(string name, Control parent)
foreach (Control Item in parent.Controls)
if (Item.Name == name)
return Item;
else
Control control = GetControl(name, Item);
if (control != null)
return control;
return null;
参考技术A Button btn=(Button)容器名.Controls["a"];
btn...操作 参考技术B 遍历窗体中所有的控件,然后使用if条件判断,找到你想要控件就可以了
以上是关于C# winform,怎么通过控件的Name属性判断某个控件是不是已经存在的主要内容,如果未能解决你的问题,请参考以下文章
c# winform的dateTimePicker控件的日历面板的字体怎么调大?