目前,我已经设置了一个自定义好的取消对话框,并在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