2016-04-07 7 views
1

私がリリースする予定のツールのログインを作成しようとしていますが、子フォーム(ログイン)を閉じると、親の親フォーム(ツール)が開きます。親フォーム子フォームが閉じているときに開きますか?

if (metroTextBox1.Text == "User01") { 
    if (metroTextBox8.Text == "Password") { 
     this.Close(); 
    } 
    else { 
     MessageBox.Show("Invalid Username/Password!"); 
    } 
} 
else { 
    MessageBox.Show("Invalid Username/Password!"); 
} 

そして、「終了ボタン」の下で、私はこれを持っている:私はこの例では、単純なログインフォームを作成した子フォームで

Login Log = new Login(); 
Log.ShowDialog(); 

:私はForm1_Loadの下にこれを持って私のメインツールで :

this.Close(); 
Form1 Closer = new Form1(); 
Closer.Close(); 

しかし、私は、終了ボタンを押したときに、ユーザは、私が欲しいものではありませんこれは、ログインしなくても、それを使用することができ、メイン親フォームが開きます。

答えて

0

Form1に実装します。

public static Form1 MainFormForMySoftware; 

あなたは、Form1を作成するときは、

MainFormForMySoftware = this; 

そして、あなたは親を閉じたいときにこれを使用言う:

MainFormForMySoftware.Close(); // It's a static reference for your Form1, you can close it from anywhere.... 

それは閉じます親であり、子供でもあります。

聖霊降臨祭のこのコード:

this.Close(); 
Form1 Closer = new Form1(); 
Closer.Close(); 

あなたはそれが新しいForm1の、それが親フォームではありません、Form1の新しいインスタンスを作成します...

0

あなたが親フォームと通信するためにいくつかの方法が必要ですログインが成功したか失敗したかを示します。通常の方法は不動産です。子フォームで、

public bool Status 
{ get; private set; } 

プロパティを追加し、その後それ以外のログインが成功した場合Status = true;を設定し、Status = false;

あなたの主なForm1_Loadは次のようになります。

Login log = new Login(); 
log.ShowDialog(); 
if (!log.Status) 
{ 
    Close(); // or whatever else you want to do after a failed login. 
} 

(変数名は下部ケースで始まることに注意してください。log

関連する問題