Как удалить элементы в списке, который был выбран случайным образом с помощью таймера - PullRequest
0 голосов
/ 31 октября 2018
private void button1_Click(object sender, EventArgs e)
    {
        timer1.Start();
        timer2.Start();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        int a = int.Parse(label3.Text)
            + 1;
        label3.Text = a.ToString();
        if (label3.Text == "10")
        {
            listBox1.Items.Add(label1.Text);
            label3.Text = "0";
        }
    }

    private void timer2_Tick(object sender, EventArgs e)
    {
        Random rnd = new Random();
        int num = rnd.Next(1, listBox2.Items.Count);
        label1.Text = num.ToString();
        if (label3.Text == "10")
        {
            listBox1.Items.Add(label1.Text);
            listBox2.Items.Remove(label1.Text); //this line of code isnt working. It doesnt delete anything.
        }
    }

Я хотел бы, чтобы мой label1 перетасовал все элементы (1-10) в моем listbox2, используя timer1, тогда, если таймер достигнет 10 секунд, listbox1 добавит последний номер label1 в качестве своего элемента, а listbox2 удалит его. Работает нормально, но не удаляет то, что находится в списке 2

1 Ответ

0 голосов
/ 31 октября 2018

Вы можете использовать:

int i = listBox2.Items
.Cast<ListBoxItem>()
.ToList()
.FindIndex(x=>x==label1.Text);

listBox2.RemoveAt(i);

ОБНОВЛЕНИЕ:

Random rnd = new Random();
private void timer2_Tick(object sender, EventArgs e)
    {
        int num = rnd.Next(1, listBox2.Items.Count);
        label1.Text = num.ToString();
        if (label3.Text == "10")
        {
            listBox1.Items.Add(label1.Text);
            listBox2.Items.Remove(label1.Text); //this line of code isnt working. It doesnt delete anything.
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...