2008-11-06 47 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()是你要的方法执行,验证对话框上的输入字段。