C# 写的C/S程序,在TabControl的page切换时的问题 程序使用C#编写,使用了TabControl控件,在TabCntrol中有Panel和文本框。需要判断文本框中输入的字符串是否为整数、实数或者日期。我使用的是光标离开文本框时进行判断。但是这样就会在切换Page页的时候也会触发判断文本框中的内容是否符合要求,这样的话,程序会连续弹出提示窗口。请问,这种情况应该怎么处理? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 为什么不在TextChanged中判断呢? 你的这个需求,在leave事件里判断,确实不合理.可依楼上说的在TextChanged事件里判断 TextChanged无疑也是不合理的假设要求日期,我输个20的话就会报错了 Leave事件没错,切换Page本就应该保证输入正确 TextChanged或者提交按钮里判断 本来楼主的判断就是要进行类型判断的,在TextChanged中判断完全可以的。 TextChanged中判断,写好验证,切换page的时候给提示,然后返回 无论是否在Page里,还是在一般的界面容器里,使用光标或焦点离开来判断都不太好。可以在用户最后点确定的时候或真正取数据运算的时候再对控件的值进行验证是一个好的选择。 Leave事件验证后,可以用tip提示。最后提交的时候再用MessageBox提示。这样应该可以吧。 在textchange中如何判断输入的日期格式是不是正确呢?我不使用日期控件,而是提供文本框输入 可通过正则来验证输入的日期格式,下面一是验证的方法:#region 日期验证(YYYY-MM-DD)/// <summary>/// 日期验证(YYYY-MM-DD)/// </summary>/// <param name="InputStr">要验证的字符</param>/// <returns></returns>public static bool ValidateDataTime(string InputStr){if( InputStr != "" ){if (Regex.IsMatch(InputStr.Trim(' '),@"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$"))return true ;elsereturn false ;}return false ;}#endregion TO:ydsunny判断字符串是不是符合日期格式,我有这个函数。但是我需要在TextChange的时候进行判断。如果在Leave事件发生时进行判断,仍然会带来切换TabPage的时候无法正确验证字符串是否为日期 你在TextChanged事件里判断也行吧输入的文字长度等于10时再调用该函数判断。或直接对返回false不做任何处理 spring.net初次接触,莫笑我 在sql server 2005中,怎样只得到当前的系统的时间,而不要日期,非常感谢! 请教一下关于筛选List<T>的问题 如何取得当前DataGridView控件中当前选中行的第一列的值 进度条异步显示问题?高分请高手回答 请教一段代码 哪儿有C#数据库的电子书下载啊????? 网页在IE下显示不出来进度条 如何获得指定文件他所在的路径(一个简单的问题) 求救~~winform的KTV项目本人菜鸟求搭救吖 高分求解,Socket发送文件,应该如何设计通信协议? 关闭父对话框,打开新页面
可依楼上说的在TextChanged事件里判断
假设要求日期,我输个20的话就会报错了
可以在用户最后点确定的时候或真正取数据运算的时候再对控件的值进行验证是一个好的选择。
#region 日期验证(YYYY-MM-DD)
/// <summary>
/// 日期验证(YYYY-MM-DD)
/// </summary>
/// <param name="InputStr">要验证的字符</param>
/// <returns></returns>
public static bool ValidateDataTime(string InputStr)
{
if( InputStr != "" )
{
if (Regex.IsMatch(InputStr.Trim(' '),@"^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))$"))
return true ;
else
return false ;
}
return false ;
}
#endregion
判断字符串是不是符合日期格式,我有这个函数。但是我需要在TextChange的时候进行判断。如果在Leave事件发生时进行判断,仍然会带来切换TabPage的时候无法正确验证字符串是否为日期