目前,我已经在 c# 中设置了一个带有下拉菜单的自定义确定取消对话框。ok 和 cancel 按钮使用 DialogResult 属性,因此它后面没有代码。我现在需要做的是验证下拉菜单以检查它在发回对话结果之前是否为空。
这可能吗?
从这里
双击Closing字段,实现如下:
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);
}
禁用您的确定按钮,直到组合框更改为有效值。
如果你想检查一些东西,你总是需要设计器背后的一些代码。对于您的情况,您可以在表单中使用“关闭”事件,检查您需要什么,如果需要,设置“e.Cancel = true;” - 那么表单将不会关闭。
我为此所做的是不在 OK 按钮上设置 DialogResult,而是在按钮后面放置一些代码。
private void OkButton_Clicked(object sender, EventArgs e)
{
this.DialogResult = ValueComboBox.SelectedIndex >= 0
? DialogResult.Ok
: DialogResult.None;
}
您可以继续使用对话框的 OK 和 Cancel 按钮功能,然后将此代码放入 OK 按钮的 Clicked 处理程序中:
private void OkButton_Clicked(object sender, EventArgs e)
{
if (!IsValid()) {
this.DialogResult = System.Windows.Forms.DialogResult.None;
}
}
在上面的代码中,IsValid()
您必须实现一个方法,它验证对话框上的输入字段。