我有窗体有一个按钮,当按钮被点击时动态生成的控件,也添加一个动态生成的按钮,以便它将删除控件是在线,是指抛开按钮,当按钮点击我的代码是如何删除使用标签属性动态添加的控件
int c = 0; private void button1_Click(object sender, EventArgs e) { int v; v = c++; panel1.VerticalScroll.Value = VerticalScroll.Minimum; Button btn = new Button(); btn.Name = "btn" + v; btn.Text = "Remove"; btn.Location = new Point(750, 5 + (30 * v)); btn.Click += new EventHandler(btn_Click); ComboBox combo = new ComboBox(); combo.Name = "combobox" + v; combo.Location = new Point(30, 5 + (30 * v)); combo.Tag = btn; ComboBox combo2 = new ComboBox(); combo2.Name = "combobox2" + v; combo2.Location = new Point(170, 5 + (30 * v)); combo2.Tag = btn; TextBox txt = new TextBox(); txt.Name = "txtbx" + v; txt.Location = new Point(300, 5 + (30 * v)); txt.Tag = btn; TextBox txt2 = new TextBox(); txt2.Name = "txtbx2" + v; txt2.Location = new Point(450, 5 + (30 * v)); txt2.Tag = btn; TextBox txt3 = new TextBox(); txt3.Name = "txtbx3" + v; txt3.Location = new Point(600, 5 + (30 * v)); txt3.Tag = btn; panel1.Controls.Add(combo); 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)// this is the dynamically added button's event which will remove the combobox and textbox { Button btnh = sender as Button; foreach (Control item in panel1.Controls.OfType<TextBox>()) { if (item.Tag == sender || item == sender) panel1.Controls.Remove(item); } foreach (Control item in panel1.Controls.OfType<ComboBox>()) { if (item.Tag == sender || item == sender) panel1.Controls.Remove(item); } panel1.Controls.Remove(btnh); }
我的错误是什么,但它dosnt问题删除它离开控制所有的控制,我不知道什么控制的排将被删除问题我的代码很简单容易,但我不知道它缺少的地方
这是执行只在'C#'或者是你做任何'interop' ? – bonCodigo
看看这个MSDN链接'Control.Tag属性'-http://msdn.microsoft.com/en-us/library/system.windows.forms.control.tag.aspx – MethodMan
我正在使用Windows窗体我不知道别人,对不起,我的英语不太好,如果我误解你 –