Просмотр полной версии : Формы в C#
Hammer94
10.04.2009, 18:28
парни, как в си шарп сделать так чтобы когда на первой форме когда нажал кнопку, открылась вторая форма, а первая закрылась?
добавляешь вторую форму. Потом прописываешь кнопке Click-евент, в нём показывает вторую форму( Form2.ShowDialog() ) и закрывай вторую Form1.Hide() (или Dismiss, не помню точно).
В васике .нет по крайней мере так:
Form2.show()
Me.close() ну или Form1.close()
Во-первых, главную форму закрывать нельзя, поскольку это эквивалентно закрытию приложения.
Во-вторых, необходимость закрытия главной формы и открытия другой формы свидетельствует о неправильном дизайне приложения в целом.
procedure
12.04.2009, 18:45
Ну почему же. Я видел не мало MDI проектов, в которых главное окно являлось неким бэкграундом. И его закрыть действительно можно было, но после этого оставалась панель WindowToolsPanel. Которая являлось собственным элементом управления.
2ой случай более интересный и он продемонстрирован в браузере GoogleChrome, где можно перенести вкладку на свободное пространство. При этом откроется новое окно, а прошлое можно закрыть. Дизайн сделан на твердую 5чку у них) И тут естественно используется их же элемент управления.
В этих и некоторых других случаях это показывает не неправильный дизайн, а профессиональное управление потоками приложения. Ведь все мы знакомы с ситуацией, когда мы открываем окно настроек приложения и переключится обратно к приложению мы не можем пока не закроем окно настроек. Не задумывались почему?
3ий случай довольно тоже интересный. Программа установки SQL Server 2008 открывает сначала консоль, выполняет некоторые операции и открывает окно настроек установки, далее (во время установки) открывается новое окно, с ProgressBar'ом и statuslabel'ом состояния установки. Прошло как вы говорите главное окно, можно при этом закрыть. При этом дизайн сделать просто отлично.
В случае с ТС, советую создать иконку. И скрывать "главное окно". При выборе соответствующей опции - открыть.
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot