我想知道这是否可以在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 ........
我写了,并没有异常我期待它,因为控件已经包含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;
}
答案 0 :(得分:3)
int currentNamingNumber = 0;
txtBox.Name = "txtBox" + currentNamingNumber++;
冲洗,重复。
为每个元素提供一个唯一的数字名称,允许您找出已创建的元素数量(请注意,您不希望减少以跟踪所有已创建的对象,因为这样您可以创建两个具有相同名称的元素)
我认为您不能将所需的名称传递给新功能,但您可以在创建名称后随时设置名称。
答案 1 :(得分:3)
您可以尝试我发布的解决方案here。它将在构造函数中动态创建5个按钮。只需将代码移动到按钮单击事件,它就应该动态添加按钮并注册Click
个事件。
答案 2 :(得分:1)
这听起来像是在寻找List<TextBox>
。