我正在尝试执行删除按钮,删除与该按钮相关的其他几个控件,例如textbox
和combobox
。现在,我只能通过使用tag
函数删除一个控件来成功,如下所示:
private void deleteControl(object sender, MouseEventArgs e)
{
Button btn = (Button)sender;
TextBox txtbox = (TextBox)this.Controls.Find(btn.Tag.ToString(), true)[0];
txtbox.Dispose();
}
上面的代码是我实现的函数的代码片段。但是,我只能使用此方法删除1 Control
,因为我只能将一个Control
标记为我的删除button
。那么,如果我想使用删除button
删除2个控件,我应该如何实现?
答案 0 :(得分:1)
试试这个;迭代可用控件并根据条件删除删除
foreach (Control ctrl in this.Controls.OfType<Control>().ToList())
{
if ((ctrl.GetType() == typeof(TextBox) || ctrl.GetType() == typeof(ComboBox))
&& ctrl.Tag.ToString() == btn.Tag.ToString())
{
ctrl.Dispose();
}
}
答案 1 :(得分:-1)
你可以简单地做
this.Controls.Remove(btn);
或者如果你想删除所有
this.Controls.RemoveAll();
不要忘记控件是在容器中,所以你也可以这样做来删除所有兄弟姐妹
btn.Parent.Controls.RemoveAll();