动态创建控件
我想知道c#winform中是否可行。
按下按钮时创建控件并将其放在给定位置。
我认为这是可能的
private TextBox txtBox = new TextBox(); private Button btnAdd = new Button(); private ListBox lstBox = new ListBox(); private CheckBox chkBox = new CheckBox(); private Label lblCount = new Label();
但问题在于按下按钮时会创建相同的名称控件。如何避免这种情况
什么da ……..我写了,并没有exception我期待它因为控件已经包含btnAdd
而不是很多按钮创建你想要的许多。 访问它们将是问题,但它将通过@drachenstern
方法正确解决?
private void button1_Click_1(object sender, EventArgs e) { Button btnAdd = new Button(); btnAdd.BackColor = Color.Gray; btnAdd.Text = "Add"; btnAdd.Location = new System.Drawing.Point(90, 25+i); btnAdd.Size = new System.Drawing.Size(50, 25); this.Controls.Add(btnAdd); i = i + 10; }
你可以尝试我在这里发布的解决方案。 它将在构造函数中动态创建5个按钮。 只需将代码移动到按钮单击事件,它就应该动态添加按钮并注册Click
事件。
int currentNamingNumber = 0; txtBox.Name = "txtBox" + currentNamingNumber++;
冲洗,重复。
为每个元素提供唯一的数字名称,允许您找出已创建的元素数量(请注意,您不希望减少以跟踪所有创建的对象,因为这样您可以创建两个具有相同名称的元素)。
我不认为你可以将你想要的名字传递给新function,但你可以在创建它之后始终设置名称。
这听起来像是在寻找List
。