2012-01-23 19 views
-1
private void mnuCustomerAdd_Click(object sender, EventArgs e) 
    { 
     CustomerForm frmCust = new CustomerForm("Add A New Customer"); 

     int index = lstCustomers.SelectedIndex; 
     if (index != -1) 
      frmCust.CustomerData = new Customer(customerMngr.GetCustomer(index).ContactData); 


     MessageBox.Show("dev1"); 
     DialogResult dr = frmCust.ShowDialog(); 
     if (dr == DialogResult.OK) 
     { 
      MessageBox.Show("dev2"); 
      if (frmCust.ReadInput()) 
      { 
       MessageBox.Show("dev3"); 
       customerMngr.AddCustomer(frmCust.CustomerData); 
      } 
      else 
       MessageBox.Show("Please supply all necessary fields with the correct information"); 
     } 
     UpdateCustomerList(); 

    } 

不明白我在做什麼錯在這裏,如果用戶在出現在frmCust.ShowDialog()處的表單中點擊OK,我想執行條件語句。 目前我只能到「dev1」。Form.DialogResult問題

+2

你甚至在對話框中設置了「DialogResult」嗎? –

+0

請給這個帖子一個實際的問題/標題。簡單地輸入代碼並不能幫助任何人一眼就明白這個問題。 – cdeszaq

+1

MSDN是你的朋友:http://msdn.microsoft.com/en-us/library/system.windows.forms.form.dialogresult.aspx –

回答

4

也許你的對話框沒有設置對話框的結果。確保您的確定和取消按鈕的DialogResult屬性設置爲您所期望的。

+0

接受這個答案,因爲這是最直接的解決方案,謝謝! –

3

確保在關閉之前正確指定DialogResultForm的屬性。 因此,它將返回像調用返回值ShowDilaog()

還有另一種選擇也同樣是使用AcceptButtonCancelButton,爲了處理相應EnterCancel按鍵。

+0

感謝您的提示! –

1

地方就行了斷點(F9):

if (dr == DialogResult.OK) 

當對話框關閉,您將有機會檢查什麼dr設置爲。

爲了讓對話框返回DialogResult.OK你可以將它設置在對話框的確定​​按鈕:

void buttonOK_Click(object sender, EventArgs e) 
{ 
    this.DialogResult = DialogResult.OK; 
    Close(); 
} 

或者你可以做狄格蘭的answer的選項。

+0

感謝您的幫助,下次我會更仔細地檢查故障變量。 –