C# Winform 文本框验证中断的取消按钮



我正在与visual studio 2013一起C#制作winform应用程序。在我的表格上,我有几个text-boxes和几个buttons.

更具体地说,我有一个cancelButton,当单击时将关闭应用程序,该应用程序在此处通过此事件进行处理。

private void cancelButton_Click(object sender, EventArgs e)
{
    //close the application
    Application.Exit();
}

我有一个看起来像这样的TextBox_Validated事件

private void aTextBox_Validated(object sender, EventArgs e)
{
    int matchIntPosition;
    string someString = aTextBox.Text.ToUpper();
    //check a string array to see if the value entered exsists
    matchIntPosition= Array.IndexOf(someStringArray, someString);
    if (matchIntPosition > -1)
    {
        string someString = someStringArray[matchIntPosition];
    }
    else
    {
        MessageBox.Show("This value does not exist, Please try again.");
        aTextBox.Focus();
    }
}

现在,我强制用户确保在继续我的表单之前正确填写此字段(这是我的表单上的第一个文本框)。

这就是我的问题所在,当我单击取消按钮时,它只是击中了我的aTextBox_Validation事件中的else。强迫我在点击取消按钮之前输入正确的值。

我已经做了一些谷歌搜索,试图弄清楚如何解决它。我尝试过的一些事情是:

cancelButton.CausesValidation = false;在我的cancelButton_Click事件中,不起作用。

试图设置一个bool标志来做与^几乎相同的事情,这似乎也不起作用。

任何想法或推动到正确的地方?

您需要设置:

自动验证=启用允许焦点更改

在包含表单上。

然后,

您应该在"提交"按钮上进行验证。 问题是,当您离开文本字段时,Validated事件总是会触发,因此即使您单击"取消"按钮也会发生这种情况。

如果在文本框失去焦点时运行文本框验证,则点击取消按钮将导致文本框失去焦点,从而在关闭之前进行验证。

相关内容

  • 没有找到相关文章

最新更新