У нас есть простое приложение 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 дочерней формы.
Что вы думаете? Должен ли я переключиться на другую архитектуру или просто найти способ закрыть все эти формы?
Спасибо.
Нет, MDI никогда не делал внешний вид приложения или чувствовал себя лучше. Просто напишите правильный код, установите для этого свойства.DialogResult значение DialogResult.OK после вызова ShowDialog(), чтобы закрыть диалоговое окно. –
Спасибо. Но как я могу закрыть 'FormFeedback',' FormInput' и отображать 'FormHome', когда я закрываю' FormThanks'? – rbhat
Ну, это сработало. Я установил 'this.DialogResult = DialogResult.OK;' во всех Формах и, похоже, сработал. – rbhat