2017-10-19 260 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