换句话说,下面代码中的第2行会有效吗?
// let's assume that myForm has not previously been added
myControlCollection.Add(myForm);
myControlCollection.Add(myForm); // line 2
答案 0 :(得分:2)
不会对第二行产生任何影响。该集合不会两次添加相同的控件实例。
答案 1 :(得分:2)
执行第二行时不会有任何影响。
答案 2 :(得分:2)
我相信立即连续两次执行Add
将没有明显效果。但是,如果对其他控件进行干预Add
调用,则会 - 因为Add
更新Z顺序,将新添加的控件发送到后面。例如:
using System;
using System.Drawing;
using System.Windows.Forms;
class Test
{
static void Main()
{
Form f = new Form();
Button b1 = new Button
{
Location = new Point(50, 50),
Size = new Size(40, 40),
Text = "b1"
};
Button b2 = new Button
{
Location = new Point(70, 70),
Size = new Size(40, 40),
Text = "b2"
};
f.Controls.Add(b1);
f.Controls.Add(b2);
// f.Controls.Add(b1);
Application.Run(f);
}
}
这会在b1
前显示b2
- 但如果您取消注释第二次Add(b1)
,则订单将被撤销。