我有一个带有按钮的窗口窗体,当单击按钮时,它会动态生成控件,还添加了一个动态生成的按钮,以便它将删除对齐的控件,这意味着除了按钮之外,还有一行控件单击按钮时删除我的代码是
诠释 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<TextBox>() 中的控制项) { if (item.Tag == 发件人 || item == 发件人) panel1.Controls.Remove(item); } foreach(panel1.Controls.OfType<ComboBox>() 中的控制项) { if (item.Tag == 发件人 || item == 发件人) panel1.Controls.Remove(item); } panel1.Controls.Remove(btnh); }
我的错误没什么,但问题是它不会删除它留下的所有控件,我不知道问题是什么我的代码简单易行,但我不知道它缺少什么