2011-02-14 52 views
6

我在運行時創建了多達20個按鈕。如何使用C#.net刪除數組中的按鈕?

現在,在一個事件中,我想刪除15個按鈕,保持原來的5個。我該怎麼做?

然後,每當調用另一個事件時,就會像以前一樣添加相同的按鈕。

回答

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); 
} 

然後從應用程序再次刪除任何按鈕,簡單地做:

this.Controls.Remove(buttons[i]); 
buttons.RemoveAt(i); 

有了這個設置,刪除最後15個按鈕,嘗試以下內容:

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

記得讓在第20項循環開始,並向下工作,因爲如果你刪除列表中的元素,這意味着所有具有更高指數的元素會得到日eir index 移位了1.

0

要移除按鈕,必須將其從控件集合中移除。

使用this.Contols.Remove(<buttonControl>);

這類似於你如何在運行時添加按鈕。而不是.add,您使用.remove

相關問題