找回密码
 立即注册

QQ登录

只需一步,快速开始

zongxudong
初级会员   /  发表于:2013-11-30 18:06  /   查看:6335  /  回复:3
我在看文档里面. 现在的 DataValidator 只是提供了几个固定类型的验证. 我需要实现一个用户动态验证. 如果能够提供一个正则的验证, 也能勉强满足需求.

我本来想用自定义类来继承 DataValidator , 本以为重写 IsValid 方法就可以实现. 但是当我把创建的对象设置到 Column.DataValidator 属性上的时候. 竟然报错.  不知道是不是我哪里没做对

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-12-2 11:01:00
沙发
回复 1楼zongxudong的帖子

zongxudong 你好,
经确认,DataValidator 无法自定义。
你可以通过 EditEnd 事件来验证输入文本:

  1. void gcSpreadSheet1_EditEnd(object sender, GrapeCity.Windows.SpreadSheet.UI.EditCellEventArgs e)
  2.         {
  3.             GrapeCity.Windows.SpreadSheet.UI.SpreadView sview = sender as GrapeCity.Windows.SpreadSheet.UI.SpreadView;
  4.             if (sview.CellEditor is TextBox)
  5.             {

  6.                 TextBox tb = (TextBox)sview.CellEditor;

  7.                 tb.KeyDown -= new KeyEventHandler(tb_KeyDown);

  8.                 tb.KeyDown += new KeyEventHandler(tb_KeyDown);

  9.             }
  10.         }

  11.         void tb_KeyDown(object sender, KeyEventArgs e)
  12.         {
  13.         }
复制代码
回复 使用道具 举报
zongxudong
初级会员   /  发表于:2013-12-2 14:26:00
板凳
回复 2楼iceman的帖子

哦. 谢谢你的回复.

只是我没看懂. 为什么要在文本框上监听键盘事件. 为什么不编辑完成后直接验证值

希望后期版本能够提供这样的支持.  感觉应该不困难 :Z
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-12-2 15:57:00
地板
回复 3楼zongxudong的帖子

恩,编辑完再验证也可以。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部