C#删除尚未添加的控件

0 c# controls winforms

在C#Windows窗体中,我正在创建一些动态控件:

TextBox field = new TextBox();
DateTimePicker field2 = new DateTimePicker();
CheckBox field3 = new CheckBox();
Run Code Online (Sandbox Code Playgroud)

基于在此之后运行的一些if语句,我将需要删除3个控件中的2个,甚至在它们被添加到表单之前.如果我试试这个

Controls.Remove(field);
Controls.Remove(field3);
Run Code Online (Sandbox Code Playgroud)

它不起作用,大概是因为它们实际上还没有控制.那我怎么能摧毁他们呢?我需要删除它们的原因是因为之后在上面的情况下,我没有删除field2因为我需要保留DateTimePicker,我将重命名为"字段".

Jon*_*ood 5

您的代码创建控件但不将它们添加到表单中.

在将控件添加到表单的Controls集合(或Controls子控件的集合)之前,控件不会添加到表单中.

由于您尚未将它们添加到表单中,因此无法从表单中删除它们.如果可以的话,没有任何意义.

如果您不需要它们,请不要将它们添加到表单中.或者,更好的是,首先不要创建它们.