请问在VB.Net中如何触发DataGridView.CellValidating事件的方法

望諸公 2020-05-01 01:15:19
Public Event EventCellValidating(e As DataGridViewCellValidatingEventArgs) '自定义事件

Public Sub StartEvent(e As DataGridViewCellValidatingEventArgs) '触发事件过程
RaiseEvent EventCellValidating(e) '触发事件
End Sub

问题在于这个参数:DataGridViewCellValidatingEventArgs
Dim Args1 AS DataGridViewCellValidatingEventArgs,是空值,没有属性也没有方法。怎么提供给事件?

请各位高手施以援手!网上已经参考很多,不要再提供参考例子让我琢磨,也不要给C语言,麻烦直接解决问题,可以的话,完整写语句,谢谢再谢谢!
...全文
918 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
望諸公 2020-05-28
  • 打赏
  • 举报
回复
八楼的意思,应该是指在程序里面,当不是处理控件的时候,就不要用控件来介入内部程序吧!谢谢,在有更好的方法之后,会替换掉。
望諸公 2020-05-28
  • 打赏
  • 举报
回复
七楼,AddHandler, AddressOf 语句里面,事件把参数:DataGridViewCellValidatingEventArgs 提供给自定义事件(下述第2、3项),这个我明白。但是在触发这个事件的程序里面(下述第1项),怎么提供这个参数?
1. 触发事件程序
2. 事件
3. 自定义事件处理程序
例如事件:CellEnter,绑定自定义事件处理程序,而外部也可以用New DataGridViewCellEventArgs,然后直接调用自定义事件处理程序,但这个 DataGridViewCellValidatingEventArgs 就不知道怎样创建。

八楼,datagridview 不就是面对用户的输出输入用途的控件吗?
eaqpi 2020-05-22
  • 打赏
  • 举报
回复
给个个人建议,不到逼不得已,不要拿datagridview当输入器。
  • 打赏
  • 举报
回复
不清楚思路?自定义事件的参数可以那样写,然而传递的参数如何获取?必须的有注册事件中获取参数。
望諸公 2020-05-12
  • 打赏
  • 举报
回复
目前只能采取的办法是令 CurrentCell = DbNull.Value,从而触发该事件。
望諸公 2020-05-12
  • 打赏
  • 举报
回复
很感谢回复!可是没有得到问题本身的处理办法。
3楼给的是事件绑定过程,我要的是如何触发这个事件,例如怎样在其它程序段通过调用此方法:OnCellValidating,从而触发该事件。
2楼提供的是跳过这个问题的途径。
......在这个网坛提了好几次问题了,所以从一开始就预计到会有这样的结果,可还是想再问问,怎么触发这个DataGridView.CellValidating事件呢?
  • 打赏
  • 举报
回复
没明白是说虾米?就是单元格输入后的验证,很简单的事情,就算是自己写这个验证事件,那么触发也是很简单的:

AddHandler 数据列表.CellValidating, AddressOf 输入验证
Sub 输入验证(sender As Object, e As DataGridViewCellValidatingEventArgs)
If e.FormattedValue = "嗯嗯" Then MessageBox.Show("确定添加?", "友情提示", MessageBoxButtons.YesNo)
End Sub

jhonsonzhang 2020-05-04
  • 打赏
  • 举报
回复
为什么非要去捕捉控件的单元格验证事件?用bindingsource绑定到datagridview就不应该去管datagridview了。直接对数据本身进行验证。使用DataAnnotations相关方法直接对绑定的基础类进行验证。或者使用Inotifypropertychanged,在方法里面添加你自己的验证方法。
望諸公 2020-05-01
  • 打赏
  • 举报
回复
即使有派生类中重写方法: OnCellValidating,但问题仍然是这个参数:DataGridViewCellValidatingEventArgs,怎么赋值?
Protected Overrides Sub OnCellValidating(e As DataGridViewCellValidatingEventArgs)
MyBase.OnCellValidating(e)
End Sub

期望回答!

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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