2016-10-07 14 views
0

私は3つのフォームmainForm,LoginFormAdminFormを持っています。 mainFormのメニュー項目をクリックすると、LoginFormShowDialogを使用)が開きます。ログインの詳細を正しく提供する上でAdminFormを開きたいが、mainFormを閉じたくない。それは何AdminFormフォームを開くと閉じる

this.Hide(); 
AdminForm adminform = new AdminForm(); 
adminform.ShowDialog(); 
this.Close(); 

を開くためにLoginformにこのコードを使用している

は、別途adminFormを表示します。主なフォームに焦点を当てて、私はadminFormmainFormのダイアログとして表示することをからMainFormに変更したいと思います。

+0

正確な問題は何ですか? –

+0

私は本当にその質問を理解していませんでした。 'ShowDialog'の代わりに' Show() 'を使用してください。 – Brandon

+0

@CodeJoy AdminFormをメインフォーム内で開くようにします – Sdp

答えて

0

ShowDialogを使用する場合は、親フォームを渡す必要があります。 loginForm.ShowDialog(this)を実行すると、adminForm.ShowDialog(Owner)を実行できます。

+0

ありがとうございます@Nop。これは働いた.. this.Hide(); AdminForm adminform = new AdminForm(); adminform.ShowDialog(this); this.Close(); – Sdp

2

をが閉じた後にMainFormから表示する必要があります。 LoginForm.DialogResultを使用して、ログインが成功したかどうかをMainFormに通知できます。

// in LoginForm, when login is successful: 
this.DialogResult = DialogResult.OK; 

// in MainForm: 
LoginForm lf = new LoginForm(); 
DialogResult r = lf.ShowDialog(this); 
if (r == DialogResult.OK) 
{ 
    AdminForm adminform = new AdminForm(); 
    adminform.ShowDialog(this); 
} 
+1

彼は古いフォームの中に新しいフォームを表示したい –

+0

はい@ adv12その問題は、コードを試してみましょう。 – Sdp

+0

adv12の回答があなたの問題を解決した場合は、大きなチェックボックスをクリックして答えとして受け入れます。 –

0

現在のフォームに管理フォームを表示する場合は、これが有効です。 自分のフォーム内にダイアログを表示することはできませんが、表示は正常に動作するはずです

this.IsMdiContainer = true; 
AdminForm adminform = new AdminForm(); 
adminform.MdiParent = this; 
adminform.Show(); 
関連する問題