Windowsのタブレットで実行する簡単なWindowsフォームアプリケーションがあります。私たちがこれまでに持っているものはうまく走っています。私が抱える問題は、winformからwinformに移行し、Formsを開いたり閉じたりすることです。Windowsタブレットで実行されているWindows Formsアプリケーションの操作/終了?
現在、このような感じです。
以下は、メインフォームFormHome
開きます
var form = new FormInput();
form.StartPosition = FormStartPosition.CenterParent;
form.ShowDialog();
クリックFormInput
でさらに別のフォームが開きます。
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FormHome());
}
クリックボタンでFormHome
からは、新しいフォームコールFormInput
が開きます、FormFeedback
:
var form = new FormFeedback(patientInputId);
form.StartPosition = FormStartPosition.CenterParent;
form.ShowDialog();
そして最後に、FormFeedback
が開きます1最後の最終形態、FormThanks
:
var form = new FormThanks();
form.StartPosition = FormStartPosition.CenterParent;
form.ShowDialog();
FormThanks
何もしません。ユーザーに感謝し、閉じるボタンがあります。これは、この閉じるボタンがFormThanks
、FormFeedback
、FormInput
を閉じることになるので、表示される唯一のフォームはFormHome
です。
winformsを閉じる以外は、他のすべてが正常に動作しています。しかし、フォームを開いたり閉じたりする必要がある場合は、通常のWindowsフォームの代わりに別のアーキテクチャを使用する方が良いかもしれないと考えています。
私はこれをSO linkと読んでいました。誰かがMDIコンテナを使用し、代わりにパネルで置き換えることを提案しています。しかし私の最初の考えは、MDIコンテナのFormBorderと、子フォームのFormBorderを見ていることです。
あなたの考えは?別のアーキテクチャに切り替えるか、それらのフォームを閉じる方法を見つけるだけですか?
ありがとうございました。
いいえ、MDIは一度もアプリを見たことがありません。正しいコードを書いて、ShowDialog()コールの後にthisDialogResultプロパティをDialogResult.OKに設定して、ダイアログを閉じます。 –
ありがとうございます。しかし、 'FormThanks'を閉じると、' FormFeedback'、 'FormInput'、そして' FormHome'をどのように閉じることができますか? – rbhat
さて、それは働いた。私はすべてのフォームで 'this.DialogResult = DialogResult.OK; 'を設定しました。これはうまくいったようです。 – rbhat