2012-12-24 24 views
5

私のアプリケーションには2つのフォームがあります。フォームが閉じるべきでないときに閉じる

フォーム1:

private void btnTest_Click(object sender, EventArgs e) 
{ 
    DialogResult result = new System.Windows.Forms.DialogResult(); 
    Add_Link addLink = new Add_Link(); 
    result=addLink.ShowDialog(); 

    if (result == System.Windows.Forms.DialogResult.OK) 
    { 
     // 
    } 
} 

様式2:

private void btnAdd_Click(object sender, EventArgs e) 
{    
    if(validURL(txtSubLink.Text)) 
    { 
     HyperLink add = new HyperLink(txtSubLink.Text,txtSubText.Text,"URL"); 
     this.build = add;     
    } 
    else 
    { 
     MessageBox.Show("Valid URL Needed! " + txtSubLink.Text, "ERROR"); 
    }    
} 

ユーザーがAddボタンをクリックした場合私の問題は、エラーメッセージが示す(なぜなら彼らの方法私はForm 2はこのようなものです呼び出しますデータが無効またはテキストボックスが空です)BUTフォームを閉じます。 2つのテキストボックスに適切なデータが含まれていれば、フォームを閉じてデータを戻すだけです。 2つのテキストボックスに適切なデータが含まれていない場合、またはが空白の場合、ユーザーが[追加]をクリックすると、エラーメッセージが表示され、Form 2は開いたままにする必要があります。

+1

私は、フォームの閉鎖をトリガーするコードが表示されない...私は困惑し – miniBill

+0

@miniBillだ - フォーム2の場合は最初のステートメントでは、関係なく、またはエラーかどうか、それを閉じます。 –

答えて

8

あなたのbtnAddDialogResultプロパティがOKに設定されていると思われます。設定を解除し、入力に満足したらthis.DialogResult = DialogResult.OKをイベントハンドラに追加します。

private void btnAdd_Click(object sender, EventArgs e) 
{ 

    if(validURL(txtSubLink.Text)) 
    { 
     HyperLink add = new HyperLink(txtSubLink.Text,txtSubText.Text,"URL"); 
     this.build = add; 
     this.DialogResult = DialogResult.OK; 

    } 
    else 
    { 
     MessageBox.Show("Valid URL Needed! " + txtSubLink.Text, "ERROR"); 
    } 

} 
+0

あなたの権利を忘れないでください。私はthis.DialogResult = DialogResult.Okの代わりにthis.btnAdd.DialogResult = System.Windows.Forms.DialogResult.OKを入れました。それは今働く。ありがとう –

関連する問題