2013-10-09 6 views
-1

Итак, в проекте, который я планирую, пользователь будет переключаться между разными экранами часто. Эти разные экраны будут иметь разные элементы управления с различными функциями, и на самом деле ничего общего.Каков наилучший способ переключения формы на C#

Должен ли я создать форму для каждого экрана и просто form.close и form.show (?) Для переключения экрана? Или лучше сохранить скрытие и показать определенные элементы управления, поэтому, если пользователь хочет перейти в форму B из формы A, все элементы формы A исчезнут, а элементы управления Bs появятся? Мне не нужно знать, как это сделать, мне просто нужно знать, какой из них рекомендуется или правильно, потому что я его нигде не видел.

+1

Я бы предложил вам разделить каждый «вид» на свою форму, так как логика отображения каждой формы будет отдельной и простой. – codemonkeh

+0

Я бы сохранил только ОДНУ ФОРМУ, которая действует как контейнер для всего остального. Разработайте другие «формы» как UserControls. Объявите все уровни UserControls на уровне формы, а затем вы можете просто переключить то, что UserControl в настоящее время состыкован и отображается внутри основной формы ... –

ответ

3

Вы не должны использовать

form.close(); 

как это будет закрыть текущую форму (и если его главную форму, выйти из приложения) используют

form.hide(); 

вместо этого. Пример приведен ниже

из Form1:

private void btnModify_Click(object sender, EventArgs e) 
{ 
Form mod = new modifyForm(); 
mod.Owner = this; 
mod.Show(); 
this.Hide(); 
}//end btnModify_Click 

из modifyForm:

private void btnCancel_Click(object sender, EventArgs e) 
{ 
    this.Owner.Show(); 
    this.Close(); 

} 
+0

Спасибо! Я буду играть с вашими примерами и посмотреть, могу ли я их понять, я все еще очень новичок в C#. – Nathan

2

Вы также можете попробовать использовать TabControl. Вы можете группировать различные экраны в разные элементы табуляции. Все, что вам нужно сделать, - перетащить его в форму и отредактировать ее содержимое в окне «Свойства».

Смежные вопросы