【发布时间】:2012-12-03 10:55:31
【问题描述】:
我有一个窗口窗体,它有一个按钮,当单击按钮时,它会动态生成控件,还会添加一个动态生成的按钮,以便它会删除排队的控件,这意味着除了按钮之外,还有一行单击按钮时将删除控件我的代码是
int c = 0;
私人无效按钮1_Click(对象发送者,EventArgs e)
{
诠释诉;
v = c++;
panel1.VerticalScroll.Value = VerticalScroll.Minimum;
按钮 btn = new Button();
btn.Name = "btn" + v;
btn.Text = "删除";
btn.Location = new Point(750, 5 + (30 * v));
btn.Click += new EventHandler(btn_Click);
组合框组合 = 新组合框();
combo.Name = "组合框" + v;
combo.Location = new Point(30, 5 + (30 * v));
组合.标签 = btn;
组合框combo2 =新组合框();
combo2.Name = "combobox2" + v;
combo2.Location = new Point(170, 5 + (30 * v));
组合2.标签= btn;
文本框 txt = 新文本框();
txt.Name = "txtbx" + v;
txt.Location = new Point(300, 5 + (30 * v));
txt.标签 = btn;
文本框 txt2 = 新文本框();
txt2.Name = "txtbx2" + v;
txt2.Location = new Point(450, 5 + (30 * v));
txt2.标签 = btn;
文本框 txt3 = 新文本框();
txt3.Name = "txtbx3" + v;
txt3.Location = new Point(600, 5 + (30 * v));
txt3.标签 = btn;
panel1.Controls.Add(组合);
panel1.Controls.Add(btn);
panel1.Controls.Add(txt);
panel1.Controls.Add(combo2);
panel1.Controls.Add(txt2);
panel1.Controls.Add(txt3);
}
private void btn_Click(object sender, EventArgs e)// 这是动态添加的按钮事件,它将删除组合框和文本框
{
按钮 btnh = 作为按钮的发送者;
foreach(panel1.Controls.OfType() 中的控制项)
{
if (item.Tag == 发件人 || item == 发件人)
panel1.Controls.Remove(item);
}
foreach(panel1.Controls.OfType() 中的控制项)
{
if (item.Tag == 发件人 || item == 发件人)
panel1.Controls.Remove(item);
}
panel1.Controls.Remove(btnh);
}
我的错误没什么,但问题是它不会删除它留下的所有控件,我不知道是什么问题我的代码简单易行,但我不知道它缺少什么
【问题讨论】:
-
这个执行是只在
C#还是你在做任何interop? -
看看这个 MSDN Link 'Control.Tag Property'-msdn.microsoft.com/en-us/library/…
-
我在windows窗体下工作,我不了解其他人,对不起,我的英语不太好,如果我误解了你
-
@DJKRAZE 我正在将对象绑定到其他对象,以便可以将其删除,
-
好的,只是想更清楚地了解您的火车在哪里......谢谢