Удаление из списка нажатием кнопки - PullRequest
0 голосов
/ 16 декабря 2018

Я распечатываю элементы из списка на этикетке и рядом с кнопкой для удаления их из списка.Кнопка удаления не работает.

private void cart_Click(object sender, EventArgs e)
{
    krepselioPanel.Visible = !krepselioPanel.Visible;
    krepselioPav.Visible = !krepselioPav.Visible;

    int i = 0;
    double s = 0;

    foreach (Patiekalas preke in prekes)
    {
        Label prekiulist = new Label();

        prekiulist.Location = new Point(0, 26 * i);
        prekiulist.Text = preke.GetPatiekalas() + " | " + preke.GetKaina() + "€";
        prekiulist.Size = new Size(200, 20);
        krepselioPanel.Controls.Add(prekiulist);
        s += Convert.ToDouble(preke.GetKaina());

        Button removeButton = new Button();
        removeButton.Text = "x";
        removeButton.Location = new Point(200, 26 * i);
        removeButton.Font = new Font(FontFamily.GenericSansSerif, 9);
        removeButton.Size = new Size(20, 22);
        removeButton.Click += removeButton_Click;
        removeButton.Tag = preke;
        krepselioPanel.Controls.Add(removeButton);
        i++;
    }


    Label suma = new Label();
    suma.Location = new Point(krepselioPanel.Right - 140, 0);
    suma.Font = new Font(FontFamily.GenericSansSerif, 13);
    suma.Text = "Total: " + s + "€";
    suma.Size = new Size(130, 25);
    krepselioPanel.Controls.Add(suma);

}


private void removeButton_Click(object sender, EventArgs e)
{
    Button b = (Button)sender;
    Patiekalas preke = (Patiekalas)b.Tag;
    prekes.Remove(preke);
    cart_Click(sender, e);
    cart_Click(sender, e);
}

}

Просто ради интереса я изменил функции линии removeButton_Click

prekes.Remove (preke);

до

prekes.Add (preke);

, и это создает новую запись в списке, однако удаление не работает.

1 Ответ

0 голосов
/ 16 декабря 2018

Код не удаляет предыдущие элементы управления с панели, поэтому каждый раз при добавлении элементов управления создаются новые.Если у вас есть только один элемент в корзине, то в следующий раз, кажется, ничего не произойдет, ничего не будет добавлено или удалено, но если будет несколько элементов, они начнут размножаться.

Поэтому удалите элементы управления с панели, а затем добавьтеновые и предмет исчезнет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...