PDA

Просмотр полной версии : Формы в C#


Hammer94
10.04.2009, 18:28
парни, как в си шарп сделать так чтобы когда на первой форме когда нажал кнопку, открылась вторая форма, а первая закрылась?

scrat
10.04.2009, 19:25
добавляешь вторую форму. Потом прописываешь кнопке Click-евент, в нём показывает вторую форму( Form2.ShowDialog() ) и закрывай вторую Form1.Hide() (или Dismiss, не помню точно).

flabber
10.04.2009, 19:34
В васике .нет по крайней мере так:
Form2.show()
Me.close() ну или Form1.close()

Algol
10.04.2009, 23:35
Во-первых, главную форму закрывать нельзя, поскольку это эквивалентно закрытию приложения.
Во-вторых, необходимость закрытия главной формы и открытия другой формы свидетельствует о неправильном дизайне приложения в целом.

procedure
12.04.2009, 18:45
Ну почему же. Я видел не мало MDI проектов, в которых главное окно являлось неким бэкграундом. И его закрыть действительно можно было, но после этого оставалась панель WindowToolsPanel. Которая являлось собственным элементом управления.

2ой случай более интересный и он продемонстрирован в браузере GoogleChrome, где можно перенести вкладку на свободное пространство. При этом откроется новое окно, а прошлое можно закрыть. Дизайн сделан на твердую 5чку у них) И тут естественно используется их же элемент управления.


В этих и некоторых других случаях это показывает не неправильный дизайн, а профессиональное управление потоками приложения. Ведь все мы знакомы с ситуацией, когда мы открываем окно настроек приложения и переключится обратно к приложению мы не можем пока не закроем окно настроек. Не задумывались почему?

3ий случай довольно тоже интересный. Программа установки SQL Server 2008 открывает сначала консоль, выполняет некоторые операции и открывает окно настроек установки, далее (во время установки) открывается новое окно, с ProgressBar'ом и statuslabel'ом состояния установки. Прошло как вы говорите главное окно, можно при этом закрыть. При этом дизайн сделать просто отлично.

В случае с ТС, советую создать иконку. И скрывать "главное окно". При выборе соответствующей опции - открыть.