OriginalGriff
Нет, не будет.
На самом деле этот код полностью блокирует поток пользовательского интерфейса, потому что он ничего не может сделать, чтобы посмотреть на происходящее событие, потому что он полностью занят внутри вашего приложения. while
цикл-и так как он никогда не заканчивается,больше никакие события никогда не действуют.
Windows-это операционная система, основанная на сообщениях , и все, что вы (или пользователь) делаете, переводится в сообщение, которое передается по системе и обрабатывается "скрытой" частью вашего кода, называемой "циклом сообщений". Если вы не существуете из обработчика событий, то элемент управления никогда не возвращается в цикл сообщений и никогда не просматривает дальнейшие сообщения - так что ваш пользовательский интерфейс зависает и никогда не восстанавливается.
То, что вы делаете внутри этого цикла, все равно ничего не отобразит, даже без дополнительной формы по тем же самым причинам.
Вероятно, вам нужно посмотреть на запуск второго потока, чтобы что - то сделать (если этот код не является заполнителем для ваших реальных действий), но если вы это сделаете, вам нужно быть очень осторожным, так как вы не можете получить доступ к элементам управления, если они не находятся в основном потоке. Это становится сложным, и я не собираюсь пытаться объяснить это вам для этого кода!
В принципе, то, что вы пытаетесь сделать там, не сработает: и мы не можем сказать вам, что на самом деле делать, если у нас нет гораздо лучшего представления о том, что вы пытаетесь сделать в реальности.