目前,我已經設置了一個自定義好的取消對話框,並在c#中有一個下拉菜單。 ok和cancel按鈕使用DialogResult屬性,所以沒有代碼。我現在需要做的是驗證下拉列表,以便在回發對話結果之前檢查它是否爲空。如何在使用自動DialogResult時驗證.NET對話框項目?
這可能嗎?
目前,我已經設置了一個自定義好的取消對話框,並在c#中有一個下拉菜單。 ok和cancel按鈕使用DialogResult屬性,所以沒有代碼。我現在需要做的是驗證下拉列表,以便在回發對話結果之前檢查它是否爲空。如何在使用自動DialogResult時驗證.NET對話框項目?
這可能嗎?
從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);
}
如果你想檢查的東西,你需要永諾設計師背後的一些代碼。 對於您的情況,您可以在表單中使用「Closing」事件,檢查您需要的內容,如果需要,請設置「e.Cancel = true;」 - 那麼表格將不會關閉。
我爲此做了什麼不是在OK按鈕上設置DialogResult,而是在按鈕後面放置一些代碼。
private void OkButton_Clicked(object sender, EventArgs e)
{
this.DialogResult = ValueComboBox.SelectedIndex >= 0
? DialogResult.Ok
: DialogResult.None;
}
禁用您的確定按鈕,直到組合框更改爲有效值。
您可以繼續使用確定和取消對話框按鈕的功能,然後把這個代碼在點擊的處理程序確定按鈕:
private void OkButton_Clicked(object sender, EventArgs e)
{
if (!IsValid()) {
this.DialogResult = System.Windows.Forms.DialogResult.None;
}
}
在上面的代碼,IsValid()
是你要的方法執行,驗證對話框上的輸入字段。
這不會阻止用戶使用取消按鈕或關閉按鈕關閉對話框嗎? – mdonoughe 2012-06-19 17:37:40