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

saa*_*aaZ 6 c# visual-studio winforms

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

现在,一个事件,我想删除15个按钮,保留前5个按原样.我怎么能这样做?

然后,每当调用另一个事件时,将像以前一样添加相同的按钮.

Øyv*_*hen 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);
}
Run Code Online (Sandbox Code Playgroud)

然后再次从应用程序中删除任何按钮,只需执行以下操作:

this.Controls.Remove( buttons[i] );
buttons.RemoveAt(i);
Run Code Online (Sandbox Code Playgroud)

完成此设置后,要删除最后15个按钮,请尝试以下操作:

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

请记住让循环从第20项开始,然后向下工作,因为如果删除列表中的元素,这意味着所有索引较高的元素将使其索引移动 1.