2017-10-19 203 views
0

所以我想要的是將字符串添加到我的ArrayList中,然後將其顯示在面板中作爲按鈕,如果單擊它然後將其從數組和麪板中刪除。使用ArrayList添加/刪除按鈕到面板c#

所以我有什麼是

添加按鈕:

if (!tags.Contains(tag.Text)) { 
    tags.Add(tag.Text); 
    organizeTags(tags); 
} 
else { 
    MessageBox.Show("Ese tag ya está registrado", "Error: ", MessageBoxButtons.OK, MessageBoxIcon.Error); 
} 
label10.Text = tags.Count.ToString(); 

刪除按鈕:

private void Button_Click(object sender, EventArgs e) 
{ 
    Button button = new Button(); 
    button = (Button)sender; 
    tags.Remove(button.Name); 
    organizeTags(tags); 
} 

而且organizeTags功能:

private void organizaTags(ArrayList tags) 
{ 
    panel1.Controls.Clear(); 
    ArrayList botones = new ArrayList(); 
    int j = 0, i = 0; 
    foreach (string element in tags) { 
     Button button = new Button(); 
     button.Name = textBox6.Text; 
     button.Text = textBox6.Text; 
     button.Width = 100; 
     button.Left = i * 100; 
     button.Top = j * 30; 
     button.Click += new EventHandler(Button_Click); 
     panel1.Controls.Add(button); 
     i++; 
     if (i == 6) 
     { 
      j++; 
      i = 0; 
     }    
    } 
} 

但它的工作原理可怕,它cr eates 2個按鈕具有相同的名稱,那麼它只會刪除第一個按鈕,我不知道如何解決它。

+1

見我在下面張貼的答案:https://stackoverflow.com/questions/37165402/c-sharp-adding-button-with-在運行時的值 – jdweng

+1

嘗試在代碼中放置斷點,然後在調試器中逐步完成。準確瞭解每條線的功能。檢查每個變量的值。 –

回答

0

變化:

button.Name = textBox6.Text; 
    button.Text = textBox6.Text; 

要:

button.Name = element; 
    button.Text = element; 
+0

謝謝,它的工作! – Fran