GridDataView的CellValidating事件与Button的Click事件先后顺序

Anod 2013-06-17 02:34:13
GridDataView设定了CellValidating事件,当某个cell输入了某个value时,直接点击旁边的Button,此时会执行Button的Click事件方法,不执行cell的验证事件方法.

难道改变当前页面Focus不行,非要改变GridDataView的CurrentCell才会触发CellValidating么?

CellValidating事件方法里已经有些提示,如数据格式不正确等.我需要实现在点击Button时若所有Cell有值,就保存所有值;若部分Cell无值,就提示用户需要填充完毕.若在Button事件中手动改变CurrentCell,则有可能会提示用户数据格式不正确后再提示用户需要填充完毕.除了将CellValidating事件方法里的提示用异常报出外有无其他方法呢?
...全文
311 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Anod 2013-06-25
  • 打赏
  • 举报
回复
1.输入一个Cell之后,可能点击Button也可能继续输入其他Cell.输入其他Cell之前肯定要判断格式,所以验证事件少不了. 2.有的Button会填充多个Cell.所以在填充之前,也是会执行验证事件的. 3.输入一个Cell之后,再直接点击Button,是不执行验证事件的,如果设置Flag,必须要手工调用验证事件方法同功能的方法.在执行Button正常的功能.
stiff_neck 2013-06-17
  • 打赏
  • 举报
回复
1. 2.消息重叠这种现象只会出现在手动输入datagridview之后,直接点击button吧 我说的办法也只是针对这一种情况 3.foreach
Anod 2013-06-17
  • 打赏
  • 举报
回复
引用 6 楼 stiff_neck 的回复:
[quote=引用 楼主 anodaniu 的回复:] 若在Button事件中手动改变CurrentCell,则有可能会提示用户数据格式不正确后再提示用户需要填充完毕.除了将CellValidating事件方法里的提示用异常报出外有无其他方法呢?
1.这个方法是有点笨 2.你不是要解决message重叠的问题么?[/quote] 1.我说的笨是不便修改的意思. 2.偌大一个GridView,不可能所有cell都让人工输入啊...
stiff_neck 2013-06-17
  • 打赏
  • 举报
回复
引用 楼主 anodaniu 的回复:
若在Button事件中手动改变CurrentCell,则有可能会提示用户数据格式不正确后再提示用户需要填充完毕.除了将CellValidating事件方法里的提示用异常报出外有无其他方法呢?
1.这个方法是有点笨 2.你不是要解决message重叠的问题么?
Anod 2013-06-17
  • 打赏
  • 举报
回复
引用 4 楼 stiff_neck 的回复:
定义一个flag 如果格式不正确消息弹出 改变flag 在button事件里依据flag 判断是否继续执行
1.这个方法有点笨... 2.Cell有时不是一个一个来输入,可能是执行了某个操作,一次添加了几个cell的值,此时使用Flag不能描述几个cell准确的输入情况,而且并不是输入了cell就会点Button,是最后要保存才点的.
stiff_neck 2013-06-17
  • 打赏
  • 举报
回复
定义一个flag 如果格式不正确消息弹出 改变flag 在button事件里依据flag 判断是否继续执行
Anod 2013-06-17
  • 打赏
  • 举报
回复
引用 2 楼 anodaniu 的回复:
[quote=引用 1 楼 stiff_neck 的回复:] 是要先执行cellvalidating事件吧,设两个断点不就知道了么
发帖前就试过了,焦点还是在cell里,cellvalidating未执行.[/quote] 补充一下,button是ToolStrip里的button,不是普通的Button,难道是普通的Button的CanFocus为true.toolStrip中的button的canFocus为false?
Anod 2013-06-17
  • 打赏
  • 举报
回复
引用 1 楼 stiff_neck 的回复:
是要先执行cellvalidating事件吧,设两个断点不就知道了么
发帖前就试过了,焦点还是在cell里,cellvalidating未执行.
stiff_neck 2013-06-17
  • 打赏
  • 举报
回复
是要先执行cellvalidating事件吧,设两个断点不就知道了么

111,097

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧