C#Winform文本框验证取消按钮
我正在用visual studio 2013在C#Winform文本框验证取消按钮,c#,winforms,validation,event-handling,visual-studio-2013,C#,Winforms,Validation,Event Handling,Visual Studio 2013,我正在用visual studio 2013在C中制作一个winform应用程序。在我的表单上有几个文本框和几个按钮 更具体地说,我有一个cancel按钮,单击该按钮将关闭应用程序,该应用程序在此处通过此事件进行处理 private void cancelButton_Click(object sender, EventArgs e) { //close the application Application.Exit(); } 我有一个TextBox\u验证的事件,看起来像这
C
中制作一个winform
应用程序。在我的表单上有几个文本框
和几个按钮
更具体地说,我有一个cancel按钮
,单击该按钮将关闭应用程序,该应用程序在此处通过此事件进行处理
private void cancelButton_Click(object sender, EventArgs e)
{
//close the application
Application.Exit();
}
我有一个TextBox\u验证的事件,看起来像这样
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\u验证
事件中点击else
。在按下“取消”按钮之前,强制我键入正确的值
我在谷歌上做了一点尝试,想知道如何修复它。我尝试过的一些方法是:
cancelButton.CausesValidation=false代码>在我的<代码>取消按钮\u单击代码>事件中,未工作
试图设置一个bool
标志来执行与^几乎相同的操作,但似乎也不起作用
你有什么想法或想法需要推到正确的地方吗?然后你应该在“提交”按钮上进行验证。问题是,Validated
事件总是在您离开文本字段时触发,因此即使在您点击“取消”时也会发生按钮。如果在文本框失去焦点时运行文本框验证,则点击取消按钮将导致文本框失去焦点,从而在关闭前进行验证。您需要设置:
自动验证=启用AllowFocusChange
在包含表单上。在哪里声明了someStringArray变量?它是否包含someString变量值?我会尝试验证submit按钮上的所有文本框。这是非常正常的行为。这将解决您的问题,并防止最终客户因您不断将注意力转移到他们身上而感到沮丧。@yosoy数组处于类级别,您没有抓住我问题的重点。设置cancelButton.CausesValidation=false单击事件中的代码>太晚了。在设计器中设置该值。@jonesy我已将所有验证移到“确定”按钮(提交)。但是,当我点击“确定”时,我的错误信息会显示出来,但随后我的流程的其余部分会开始,当然会出现错误。我已将所有内容都移动到“确定”按钮(或“提交”)中。但是,当文本框值无效时,将显示错误消息,但随后程序的其余部分将继续,我相信我必须将我的一些逻辑与我的if/else
混淆,我应该让它按照我的意愿工作。谢谢