Перезапустить событие Button_Click, если условие выполнено (C#, WinForms)C#

Место общения программистов C#
Ответить
Anonymous
 Перезапустить событие Button_Click, если условие выполнено (C#, WinForms)

Сообщение Anonymous »

Мне нужно сделать в событии Button1_Click длинный список действий и прочего, НО если в какой-то момент условие будет выполнено, весь процесс придется перезапустить. То, что вы бы назвали «рекурсивным» процессом/функцией/назовите это как хотите. ТОЛЬКО похоже, что это не работает. Обычно, насколько мне известно, вы используете button1.PerformClick() для вызова инструкций кнопки/инструкций обработчика событий. Вот что я делаю. НО это не работает. В инструкциях говорится: «Если это правда, выполните щелчок», поэтому, если условие не выполнено, остальные инструкции будут выполнены, и наоборот, все будет перезапущено. Только когда условие выполнено, инструкция щелчка фактически считывается программой, но не выполняется, то есть, даже если условие выполнено, весь процесс не перезапускается, а вместо этого продолжается с остальными инструкциями. Я тоже пробовал
  • Код: Выделить всё

    button1.Invoke(new Action(() => { button1.PerformClick(); }));
  • Код: Выделить всё

    button1_Click(button1, EventArgs.Empty);
    структура if-else (if->перезапустить, else->продолжить)
    < /li>
но они тоже не работают.
Итак, есть ли способ сделать это, не пытаясь позвонить внешний метод, содержащий инструкции? Я имею в виду, что мне очень странно, что обработчик нажатия кнопки кажется нерекурсивным. Я уже проверил это, но не нашел полезного ответа, возможно, вы сможете помочь. Я еще не пробовал вызывать для этого внешний метод, поскольку предпочитаю минимизировать код.

Подробнее здесь: https://stackoverflow.com/questions/785 ... c-winforms
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»