listbox ложное действие

165
11 декабря 2018, 15:40

При нажатии на элемент listboxа открывается новая форма, но также это происходит(ложное срабатывание) после заполнение listboxа командой listBox4.DataSource = id

открытие

private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
{
    string a = listBox2.Text;
    selectedID = a;
    Form f2 = new Carta();
    f2.Show();
    listBox2.ClearSelected();
    // Clipboard.SetText(a);
}

Как исправить ложное открытие?

Answer 1

Суть решения заключается в том, чтобы отключить код, который реагирует на изменение выбранного индекса.

Есть вариант с привязывание и отвязываением событий:

listBox2.SelectedIndexChanged -= listBox2_SelectedIndexChanged;
listBox2.DataSource = new List<string>
{
    "qwerty1",
    "qwerty2",
    "qwerty3"
};
listBox2.SelectedIndexChanged += listBox2_SelectedIndexChanged;

А можно использовать переменную flag:

private bool isManualSetData = false;
...
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (!isManualSetData)
    {
        Form f2 = new Form();
        f2.Show();
    }
}
...
isManualSetData = true;
listBox1.DataSource = new List<string>
{
    "qwerty1",
    "qwerty2",
    "qwerty3"
};
isManualSetData = false;
READ ALSO
Ошибка при создании скрипта

Ошибка при создании скрипта

При создании нового скрипта юнити пишет "No MonoBehaivour scripts in the file, or their names do not match the file name"

176
Как вывести хэш таблицу имеющую один ключ и несколько значений?

Как вывести хэш таблицу имеющую один ключ и несколько значений?

После этого вопроса, сразу возник следующийЕсли в хеш-таблице ключ имеет несколько значений, то как их все сразу вывести?

231
Динамическое изменение SolidColorBrush в App.xaml

Динамическое изменение SolidColorBrush в App.xaml

Пытаюсь добавить настройку цветов в программе (по нажатию кнопки) для этого использую Solidcolorbrush(прописаны в Appxaml), но я не знаю как обратиться...

120
Вернуть массив их файла, чтобы каждая строка имела свой индекс

Вернуть массив их файла, чтобы каждая строка имела свой индекс

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

146