2011-02-16 53 views
5

我有一些自定義的對話框,它有它設置按鈕,我想當我退出newBlockForm.ShowDialog(this);獲得對話結果,如果用戶按下該按鈕或沒有。從自定義對話框中獲取DialogResult

就像我會在做的WinForms對話框

if(MessageBox.Show("Exit?", "Close UP", 
    MessageBoxButtons.YesNo)== DialogResult.Yes) 

任何想法,我該怎麼辦呢?

回答

10

您可以使用您的對話框窗體上按鈕的DialogResult屬性,並將其設置爲DialogResult Enumeration,如:

//in your dialog form 
button1.DialogResult = DialogResult.OK; 

然後在您的主要形式有:

//Create an instance of your dialog form 
Form2 testDialog = new Form2(); 

// Show testDialog as a modal dialog and determine if DialogResult = OK. 
if (testDialog.ShowDialog(this) == DialogResult.OK) 
{ 
    //do processing 
} 
else 
{ 
    //do processing 
} 
0

ShowDialog方法返回一個DialogResult通過本身,您可以通過在表單設計器中設置DialogResult這些按鈕來自動設置。

3

將表單上的AcceptButton屬性映射到設計器中的Set按鈕。

或者在設置按鈕點擊處理程序中,您可以設置一些值。

 private void HandleOnSetButtonClick(object sender, EventArgs e) 
     { 
      this.IsSetClicked = true; 
      this.Close(); 

      //or 
      this.DialogResult = System.Windows.Forms.DialogResult.OK; 
      this.Close(); 
     } 

     public Boolean IsSetClicked 
     { 
      get; 
      private set; 
     }