[WinForm每日一帖] 如何验证Editor中输入的数据合法性
2007-07-04 11:29
302 查看
当user在ultraTextEditor中输入文本后, 有时我们需要check该数据是否是合法的, 比如一个Item No., 它的合法格式是xx.xxxxx.xxx, 其中x代表数字或字母, 如果user输入不是这种形式的数据将是不允许的, 因此有必要对数据的合法性进行check. 这里我们使用Validate事件作check.
(1) 为什么用Validate事件而不用传统的LostFocus(.Net中是Leave)
下面的代码是ultraMaskedEdit1的三个事件, 分别是Leave,Validated和Validating,当点击ToolBar上的Exit按钮时看哪些能够触发.
结果是Validating和Validated是触发的, 而Leave没有, 这说明当在ultraTextEditor输入数据后希望在点ToolBar上的按钮前通过Leave事件作check是行不通的, 而用Validating和Validated是可以的.
(2) 如何进行Check
在Validating和Validated事件中check. 下面以check 一个Item No. 为例, 在Validating写check 逻辑:
1333.3333.3333不是一个合法的Item No.,在Validating中验证失败, e.Cancel就赋true,
后面的Validated事件就不会触发.
如果验证通过, 后面的Validated会触发, 还可以在其中写其他的逻辑. 如下所示, 当验证通过后就选中文本:
如下所示, “AB.12345.EFG”是一个合法的ItemNo. , 验证通过后就选中文本.
(1) 为什么用Validate事件而不用传统的LostFocus(.Net中是Leave)
下面的代码是ultraMaskedEdit1的三个事件, 分别是Leave,Validated和Validating,当点击ToolBar上的Exit按钮时看哪些能够触发.
[align=left] private void ultraTextEditor1_Leave(object sender, EventArgs e)[/align] [align=left] {[/align] [align=left] MessageBox.Show("Leave event Occured!");[/align] [align=left] }[/align] [align=left] private void ultraTextEditor1_Validated(object sender, EventArgs e)[/align] [align=left] {[/align] [align=left] MessageBox.Show("Validated event Occured!");[/align] [align=left] }[/align] [align=left] private void ultraTextEditor1_Validating(object sender, CancelEventArgs e)[/align] [align=left] {[/align] [align=left] MessageBox.Show("Validating event Occured!");[/align] } |
结果是Validating和Validated是触发的, 而Leave没有, 这说明当在ultraTextEditor输入数据后希望在点ToolBar上的按钮前通过Leave事件作check是行不通的, 而用Validating和Validated是可以的.
(2) 如何进行Check
在Validating和Validated事件中check. 下面以check 一个Item No. 为例, 在Validating写check 逻辑:
[align=left] private void ultraTextEditor1_Validating(object sender, CancelEventArgs e)[/align] [align=left] {[/align] [align=left] string strPattern = "^[A-Z0-9]{2}[.]{1}[A-Z0-9]{5}[.]{1}[A-Z0-9]{3}$";[/align] [align=left] Regex objReg = new Regex(strPattern);[/align] [align=left] if (objReg.IsMatch(ultraTextEditor1.Text) == false)[/align] [align=left] {[/align] [align=left] e.Cancel = true;[/align] [align=left] MessageBox.Show("Incorrect Item No. format!");[/align] [align=left] ultraTextEditor1.Text = "";[/align] [align=left] }[/align] } |
后面的Validated事件就不会触发.
如果验证通过, 后面的Validated会触发, 还可以在其中写其他的逻辑. 如下所示, 当验证通过后就选中文本:
[align=left] private void ultraTextEditor1_Validated(object sender, EventArgs e)[/align] [align=left] {[/align] [align=left] ultraTextEditor1.Select();[/align] } |
相关文章推荐
- [WinForm每日一帖] 如何判断UltraGrid中是否选中数据
- [WinForm每日一帖] 如何选中下拉框中指定的数据
- 简单谈谈如何在DataGridView控件中验证数据输入的正确性,winform
- [WinForm每日一帖] 如何使用UltraCurrencyEditor
- [WinForm每日一帖] UltraComboEditor和UltraCombo的介绍
- winform中输入数据的验证
- [WinForm每日一帖] 如何使用资源文件提供Excel模板下载
- [WinForm每日一帖] UltraGrid导出数据到Excel
- DoNet用Ajax实现对修改密码时输入数据合法性的验证
- winform中输入数据的验证
- C#——小编浅谈如何在DataGridView控件中验证数据输入
- java程序中,数据验证,如何判断输入的文本框中的值是不是int型?
- 源码——WinForm窗体一次性数据合法性验证
- [WinForm每日一帖] UltraGrid如何自定义Row Filter的值
- [WinForm每日一帖] 如何制作复杂表头的Grid
- [WinForm每日一帖] 绑定父子关系的数据到UltraGrid
- DoNet用Ajax实现对修改密码时输入数据合法性的验证
- [WinForm每日一帖] 如何使用UltraToolTipManager为控件提供带样式的ToolTip
- WinForm窗体一次性数据合法性验证(思路分析)
- [WinForm每日一帖] 如何使你的窗体样式固定,不因系统设定而变化