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控件的日历面板的字体怎么调大?

c#的winform怎么根据控件的名字获取控件属性?

c# winform 控件层次问题

c# winform 如何取得用户控件中 的值

C# winform中怎么获取imagelist控件中图片的名字

c#的winform,怎么根据控件的名字获取控件属性!