C# WinForm Ждать, пока пользователь нажмет на клавишу

C# WinForm Ждать, пока пользователь нажмет на клавишу
Есть приложение, которое должно выполняться пошагово. Сначала построить область, потом вычислить веса, показать путь и т.д. Причем, все это делается в цикле. Необходимо, чтобы после каждого такого действия программа останавливалась и ждала, пока пользователь нажмет, к примеру, Enter. Как это реализовать?

И вдогонку еще вопрос: я рисую область в pictureBox и не пойму, по какому принципу он перерисовывается. Событие Paint не вызываю, потому что рисую только программно, согласно данным, указываемым в форме приложения. Использую bitmap и graphic.

  • Программа и так ждет какого нибудь действия от пользователя.
    Это и есть событийная модель поведения современных языков программирования.

    Создайте несколько процедур, каждая из которых будет выполнять свое действие.
    Одна - строит область, другая вычисляет вес, третья - показывает путь.
    По нажатию Enter вызывайте ту или иную процедуру.
    А что бы знать какую вызывать, заведите глобальную переменную.
    Проверяйте ее значение при нажатии кнопки, выполняйте процедуру
    и затем увеличивайте значение переменной на 1.
    Когда все действия будут пройдены, присваивайте переменно 0.
    При следующем нажатии кнопки Ваша программа начнет работу сначала.
    Так реализуется главное условие вашей задачи - работа по циклу.

  • Событие Paint работает при обновлении страницы, т. е. свернуть-развернуть или накрыть другим окном и т. д. - это обновление.. .

    не совсем понял, вы рисуете в событии НЕ Paint?

    я бы на вашем месте сделал все через событие нажатия клавишы, а уже в нем ставить по счетчику прорисовку Bitmapа-(ов) , а выводить Bitmap-ы уже через событие Paint...

    Других вариантов, чтобы проще было, как-бы и не вижу...