如何使用C#.net删除数组中的按钮?

如何使用C#.net删除数组中的按钮?,c#,winforms,visual-studio,C#,Winforms,Visual Studio,我在运行时创建了多达20个按钮 现在在一个事件中,我想删除15个按钮,保持前5个按钮不变。我怎样才能做到 然后,无论何时调用另一个事件,都会像以前一样添加相同的按钮。而不是数组,您应该使用列表。我猜在创建时,您可以这样做: List<button> buttons = new List<button>(); for( int i = 0; i < 20; i++ ){ Button b = new Button(); ... this.Contro

我在运行时创建了多达20个按钮

现在在一个事件中,我想删除15个按钮,保持前5个按钮不变。我怎样才能做到


然后,无论何时调用另一个事件,都会像以前一样添加相同的按钮。

而不是数组,您应该使用列表。我猜在创建时,您可以这样做:

List<button> buttons = new List<button>();
for( int i = 0; i < 20; i++ ){
   Button b = new Button();
   ...
   this.Controls.Add(button);
   buttons.Add(button);
}
使用此设置,要删除最后15个按钮,请尝试以下操作:

for( int i = 19; i > 4; i-- ){
  this.Controls.Remove(buttons[i]);
  buttons.RemoveAt(i);

记住让循环从第20项开始,向下运行,因为如果删除列表中的一个元素,这意味着索引较高的所有元素的索引都将被移动1。

要删除按钮,必须将其从控件集合中删除

使用
this.Contols.Remove()

这类似于在运行时添加按钮的方式。您使用的不是
.add
,而是
.remove

for( int i = 19; i > 4; i-- ){
  this.Controls.Remove(buttons[i]);
  buttons.RemoveAt(i);