2012-12-24 94 views
5

我在我的應用程序中有兩個表單。他們的方法我稱之爲Form 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應保持打開狀態,如何解決此問題......?

+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.btnAdd.DialogResult = System.Windows.Forms.DialogResult.OK,而不是this.DialogResult = DialogResult.Ok。它現在有效。謝謝 –