点击Panel不出发textbox的validating事件,怎么处理呢?

clear_zero 2011-11-08 08:02:18
我在一个textbox的validating事件中检查内容的合法性

现在发现如果点击按钮和checkbox 的话就触发validating,但是如果点击label或者panel就不触发。
现在我该如何解决问题呢?


谢谢
...全文
295 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gaohe8 2013-06-03
  • 打赏
  • 举报
回复
我解决类似的GroupBox问题的方法是在窗体上添加一个隐藏按钮(按钮的位置在窗体外), 处理GroupBox的MouseCaptureChanged事件(点击时触发), 在其中选定该隐藏按钮. 我遇到另一个问题, ComboBox A的Validating, 在点击ComboBox B时能触发, 但点击ComboBox C却不能触发, 未查到原因, 发现ComboBox A的Leave事件总能触发, 用其代替Validating解决了, 在原来校验失败e.Cancel=true;的地方用重新获得焦点(sender as Control).Select();替代.
gaohe8 2013-06-03
  • 打赏
  • 举报
回复
因为panel和label不能获得焦点,所以不会转移原来的焦点,也不会触发Validating;
xiaoxincau 2011-11-09
  • 打赏
  • 举报
回复
最容易理解的方法

Private Sub Panel1_Click(sender As System.Object, e As System.EventArgs) Handles Panel1.Click
If Me.txtBox.Focused = True Then
Me.Panel1.Focus()
End If
End Sub
ylly11111 2011-11-09
  • 打赏
  • 举报
回复

AddHandler label1.clicked, AddressOf textbox1.validating
clear_zero 2011-11-09
  • 打赏
  • 举报
回复
1我不知道为什么panel click和label click就不能触发validating事件

2我现在在keyup里面解决了,只是疑惑以上问题
xiaoxincau 2011-11-09
  • 打赏
  • 举报
回复
楼主要的是validating事件
所以直接用委托不是很合适,因为如果当前焦点在别的控件上,这时直接触发validating貌似不对
zhuhuailei 2011-11-09
  • 打赏
  • 举报
回复
在Form1_Load里添加

AddHandler label1.Click, AddressOf Button1_Click

就能在点击Lable时出发Button按下的事件了
clear_zero 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qgqch2008 的回复:]

引用 2 楼 clear_zero 的回复:

引用 1 楼 qgqch2008 的回复:

把checkbox的causesvalidating属性改成false?

没明白你的意思,我现在希望点击panel和label的时候也出发textbox的validating事件
哦,我理解错了,那就在lable和panel的click中写一个委托出发textbox的validating……
[/Quote]
谢谢哦,不过我不会写。能不能给写个例子呢?
qgqch2008 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 clear_zero 的回复:]

引用 1 楼 qgqch2008 的回复:

把checkbox的causesvalidating属性改成false?

没明白你的意思,我现在希望点击panel和label的时候也出发textbox的validating事件
[/Quote]哦,我理解错了,那就在lable和panel的click中写一个委托出发textbox的validating事件
clear_zero 2011-11-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 qgqch2008 的回复:]

把checkbox的causesvalidating属性改成false?
[/Quote]
没明白你的意思,我现在希望点击panel和label的时候也出发textbox的validating事件
qgqch2008 2011-11-08
  • 打赏
  • 举报
回复
把checkbox的causesvalidating属性改成false?

16,721

社区成员

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

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