文本框验证,焦点切换问题

Sco*_*ski 6 c# validation controls focus winforms

早上好,

我正在使用一个C#winform应用程序,它正在使用控件的验证.我遇到的问题是,当用户点击文本框并尝试点击时,验证会触发并重新聚焦控件,基本上用户无法单击控件中的另一个控件.

我想要的结果是当用户单击提交按钮时,表单上的所有控件都会生效.我希望errorProvider图标出现在出错的字段旁边,并允许用户根据需要更正它们.

我的问题是,如何设置一个控件,以允许用户在出现错误时在其外部单击.我希望用户能够填写表单的其余部分并自行回到错误,而不是被迫立即处理它.

提前感谢您的任何帮助和建议,

0x4*_*9D1 27

该表单具有AutoValidate属性,可以将其设置为允许焦点更改


小智 6

表单属性是"AutoValidate",它会影响表单上的所有控件.这是一个枚举; 将其设置为System.Windows.Forms.AutoValidate.EnableAllowFocusChange以允许用户退出验证失败的控件,但仍显示错误图标,允许用户提取错误工具提示.

控件"CausesValidation"属性是一个布尔值.如果是,则控件引发验证事件,触发errorProvider.这是错误的,一切都被绕过,用户可以退出控制,但没有错误图标或工具提示.


Jon*_*eet 2

最简单的方法是将所有验证放在“提交”按钮处理程序中,而不是将其放在控件中。