以文本方式查看主题

-  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的控件时,还是会报错

图片点击可在新窗口打开查看此主题相关图片如下:报错.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2022/6/29 9:42:00
--  
代码没有问题,有判断是文本框和组合框才会设置value。删除项目里的bin目录,重启项目试试

全局事件doublecilck还有没有其它代码?任务栏有没有设置doublecilck?

--  作者:bailing
--  发布时间:2022/6/29 10:05:00
--  
删除bin后重新打开项目还是会报错,窗口的全局事件doubleclick里面只有贴的这一段代码,
任务栏具体指的是哪里不是很清楚,不过应该没有设置doubleclick;

图片点击可在新窗口打开查看此主题相关图片如下:事件.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2022/6/29 10:06:00
--  
请上传实例说明
--  作者:bailing
--  发布时间:2022/6/29 10:33:00
--  
老师好,这是我用casestudy改的,也是同样的错误,麻烦看一下
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:窗口筛选_202206291031.zip


[此贴子已经被作者于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

好了,谢谢啦