2016-06-15 2 views
0

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何もしません。ユーザーに感謝し、閉じるボタンがあります。これは、この閉じるボタンがFormThanksFormFeedbackFormInputを閉じることになるので、表示される唯一のフォームはFormHomeです。

winformsを閉じる以外は、他のすべてが正常に動作しています。しかし、フォームを開いたり閉じたりする必要がある場合は、通常のWindowsフォームの代わりに別のアーキテクチャを使用する方が良いかもしれないと考えています。

私はこれをSO linkと読んでいました。誰かがMDIコンテナを使用し、代わりにパネルで置き換えることを提案しています。しかし私の最初の考えは、MDIコンテナのFormBorderと、子フォームのFormBorderを見ていることです。

あなたの考えは?別のアーキテクチャに切り替えるか、それらのフォームを閉じる方法を見つけるだけですか?

ありがとうございました。

+0

いいえ、MDIは一度もアプリを見たことがありません。正しいコードを書いて、ShowDialog()コールの後にthisDialogResultプロパティをDialogResult.OKに設定して、ダイアログを閉じます。 –

+0

ありがとうございます。しかし、 'FormThanks'を閉じると、' FormFeedback'、 'FormInput'、そして' FormHome'をどのように閉じることができますか? – rbhat

+0

さて、それは働いた。私はすべてのフォームで 'this.DialogResult = DialogResult.OK; 'を設定しました。これはうまくいったようです。 – rbhat

答えて

0

.hideプロパティを試すことができます。これにより、見たくないフォームが隠され、.showを使用して、必要なフォームを表示することができます。私は助けてくれることを願っています。

関連する問題