以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 窗口的doubleclick事件 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178310) |
-- 作者:bailing -- 发布时间:2022/6/29 9:30:00 -- 窗口的doubleclick事件 老师好,窗口里面有很多文本输入框和下拉选择框,想实现双击的时候自动清除内容; 就在窗口的全局事件doublecilck里做了如下设置: For Each c As WinForm.Control In e.Form.Controls If Typeof c Is WinForm.TextBox OrElse Typeof c Is WinForm.combobox Then If e.Sender.name = "查询月份" OrElse e.Sender.name = "对比月份" Then Return Else e.sender.value = Nothing End If End If Next 不过在双击其他没有value的控件时,还是会报错 |
-- 作者:有点蓝 -- 发布时间:2022/6/29 9:42:00 -- 代码没有问题,有判断是文本框和组合框才会设置value。删除项目里的bin目录,重启项目试试 全局事件doublecilck还有没有其它代码?任务栏有没有设置doublecilck?
|
-- 作者:bailing -- 发布时间:2022/6/29 10:05:00 -- 删除bin后重新打开项目还是会报错,窗口的全局事件doubleclick里面只有贴的这一段代码, 任务栏具体指的是哪里不是很清楚,不过应该没有设置doubleclick; |
-- 作者:有点蓝 -- 发布时间:2022/6/29 10:06:00 -- 请上传实例说明 |
-- 作者:bailing -- 发布时间:2022/6/29 10:33:00 -- 老师好,这是我用casestudy改的,也是同样的错误,麻烦看一下 [此贴子已经被作者于2022/6/29 10:33:39编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/6/29 10:48:00 -- If e.Sender.name = "查询月份" OrElse e.Sender.name = "对比月份" Then Else For Each c As Object In e.Form.Controls If TypeOf c Is WinForm.TextBox OrElse TypeOf c Is WinForm.combobox Then c.value = Nothing End If Next End If
|
-- 作者:bailing -- 发布时间:2022/6/29 11:02:00 -- 谢谢有点蓝老师 |
-- 作者:bailing -- 发布时间:2022/6/29 11:49:00 -- 老师不好意思,刚才双击其他的控件的时候确实不报错了,但是双击文本框的时候将整个窗口的textbox和combobox都清空了,麻烦老师再帮忙看一下 |
-- 作者:有点蓝 -- 发布时间:2022/6/29 11:50:00 -- 代码就是这种效果啦。如果只是清空当前控件,就不要遍历啊,直接处理当前控件即可 |
-- 作者:bailing -- 发布时间:2022/6/29 12:03:00 -- If e.Sender.name = "查询月份" OrElse e.Sender.name = "对比月份" Then Else Dim c As Object = e.Form.Controls(e.Sender.name) If TypeOf c Is WinForm.TextBox OrElse TypeOf c Is WinForm.combobox Then c.value = Nothing End If End If 好了,谢谢啦
|