2016-06-15 4 views
0

У нас есть простое приложение Windows Forms, которое будет работать на планшете Windows. То, что мы до сих пор работаем хорошо; проблема, с которой я столкнулась, - это переход от winform к winform и открытие/закрытие форм.Opeing/закрытие приложения Windows Forms, работающего в планшете Windows?

В настоящее время это выглядит примерно так.

Следующая открывает главную форму FormHome:

static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 
    Application.Run(new FormHome()); 
} 

Щелчок по кнопке с FormHome затем открыть новую форму вызова FormInput:

var form = new FormInput(); 
form.StartPosition = FormStartPosition.CenterParent; 
form.ShowDialog(); 

Щелчок в FormInput откроет еще одну форму , FormFeedback:

var form = new FormFeedback(patientInputId); 
form.StartPosition = FormStartPosition.CenterParent; 
form.ShowDialog(); 

И, наконец, FormFeedback откроет один последний окончательную форму, FormThanks:

var form = new FormThanks(); 
form.StartPosition = FormStartPosition.CenterParent; 
form.ShowDialog(); 

FormThanks ничего не делает; это просто спасибо пользователю и имеет Закрыть button. Это означает, что это Закрыть кнопка закроет FormThanks, FormFeedback, FormInput, так что единственная форма, которую я буду видеть, - FormHome.

За исключением закрытия winforms, все остальное работает нормально. Но когда я вижу формы, которые нужно открыть/закрыть, я думаю, что лучше использовать другую архитектуру вместо обычных Windows Forms.

Я читал это SO link, и кто-то предлагает использовать утилизатор MDI и вместо этого заменить на панели. Но в первую очередь я подумал, что я увижу FormBorder контейнера MDI, а также FormBorder дочерней формы.

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

Спасибо.

+0

Нет, MDI никогда не делал внешний вид приложения или чувствовал себя лучше. Просто напишите правильный код, установите для этого свойства.DialogResult значение DialogResult.OK после вызова ShowDialog(), чтобы закрыть диалоговое окно. –

+0

Спасибо. Но как я могу закрыть 'FormFeedback',' FormInput' и отображать 'FormHome', когда я закрываю' FormThanks'? – rbhat

+0

Ну, это сработало. Я установил 'this.DialogResult = DialogResult.OK;' во всех Формах и, похоже, сработал. – rbhat

ответ

0

Вы можете попробовать недвижимость в. Это скроет формы, которые вы не хотите видеть, и затем вы можете использовать .show для вывода тех, которые хотите переслать. Я надеюсь, что помогу

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