Как предотвратить запуск CheckChanged после настройки Checked в этом случае? - PullRequest
0 голосов
/ 02 июня 2018

У меня есть этот код в моем обработчике событий CheckedChanged:

private void cbLoadStock_CheckedChanged(object sender, EventArgs e) {
        if (cbLoadStock.Checked == false &&
            MessageBox.Show("Are you sure you want to do that?",
            "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes) {

            cbLoadStock.Checked = true;
        } else {
            cbLoadStock.Checked = false;
        }
    }

Но когда я нажимаю «Да», он устанавливает Checked в true, вызывая повторный вызов обработчика.

Как сделать так, чтобы флажок был только что установлен установленным?

1 Ответ

0 голосов
/ 02 июня 2018

Как я уже упоминал в своем комментарии, это должно сделать работу:

private void cbLoadStock_CheckedChanged(object sender, EventArgs e) {
        cbLoadStock.CheckedChanged -= cbLoadStock_CheckedChanged;
        if (cbLoadStock.Checked == false &&
            MessageBox.Show("Are you sure you want to do that?",
            "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes) {

            cbLoadStock.Checked = true;
        } else {
            cbLoadStock.Checked = false;
        }
        cbLoadStock.CheckedChanged += cbLoadStock_CheckedChanged;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...