c# 窗体上的同名控件问题

来源:百度知道 编辑:UC知道 时间:2024/06/14 01:47:23
private void button2_Click ( object sender, EventArgs e )
{
for ( int i = 0; i < 5; i++ )
{
Button button = new Button ( );
button.Name = "ok";
button.Size = new Size ( 30, 38 );
button.Location = new Point ( i * 30, 1 );
this.Controls.Add ( button );
}
}
-----------------------------------------------------------------
以上的代码表明在窗体上产生5个同名的Button按钮控件,并且经测试也能正常运行,但问题是当我们在窗体上想用手工放入5个同名的同类控件则是不行的,这是为什么?

可以吧,不行么?

Name 一般是唯一的! 不能一样的名

你这样做 前4个控件已经脱管了。除非你用Name来操作他们

但这时候Name已经失效了 所以你不能操作前4个BUTTON了

你可以用button来操作 但是你只能操作最后一个

每一个控件只有一个ID是唯一的(整个窗口唯一性) .net自身有一个表来维护一个NAME对应一个ID 但是强制给它复制相同的名 是没有用的但是NAME是赋值 但是.net F会在表的前个位置查找 只是对一个 就是第一个进行操作

如果你能通过NAME来操作(这是很难实现的)
例如:
ok.Text="Where";
你会发现只有第一个改变了

呵呵

有时间D一下我的空间!

控件的ID是不同,所以能够正常运行。

程序是可以运行,但运行完了以后你去看你的窗体上的控件,是同名的吗?!

是放入了Controls集合的原因吧!~

ID是不同