2008-11-06 48 views
1

目前,我已經設置了一個自定義好的取消對話框,並在c#中有一個下拉菜單。 ok和cancel按鈕使用DialogResult屬性,所以沒有代碼。我現在需要做的是驗證下拉列表,以便在回發對話結果之前檢查它是否爲空。如何在使用自動DialogResult時驗證.NET對話框項目?

這可能嗎?

回答

2

here

雙擊關閉字段,如下所示實現它:

private void Second_Closing(object sender, 
     System.ComponentModel.CancelEventArgs e) 
{ 
    // When the user attempts to close the form, don't close it... 
    e.Cancel = (dropdown.selecteditemindex >= 0); 
} 
+0

這不會阻止用戶使用取消按鈕或關閉按鈕關閉對話框嗎? – mdonoughe 2012-06-19 17:37:40

0

如果你想檢查的東西,你需要永諾設計師背後的一些代碼。 對於您的情況,您可以在表單中使用「Closing」事件,檢查您需要的內容,如果需要,請設置「e.Cancel = true;」 - 那麼表格將不會關閉。

0

我爲此做了什麼不是在OK按鈕上設置DialogResult,而是在按鈕後面放置一些代碼。

private void OkButton_Clicked(object sender, EventArgs e) 
{ 
    this.DialogResult = ValueComboBox.SelectedIndex >= 0 
     ? DialogResult.Ok 
     : DialogResult.None; 
} 
1

禁用您的確定按鈕,直到組合框更改爲有效值。

0

您可以繼續使用確定和取消對話框按鈕的功能,然後把這個代碼在點擊的處理程序確定按鈕:

private void OkButton_Clicked(object sender, EventArgs e) 
{ 
    if (!IsValid()) { 
     this.DialogResult = System.Windows.Forms.DialogResult.None; 
    } 
} 

在上面的代碼,IsValid()是你要的方法執行,驗證對話框上的輸入字段。