Foxtable(狐表)用户栏目专家坐堂 → 窗口的doubleclick事件


  共有4926人关注过本帖树形打印复制链接

主题:窗口的doubleclick事件

帅哥哟,离线,有人找我吗?
bailing
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:241 积分:2121 威望:0 精华:0 注册:2020/5/4 17:14:00
窗口的doubleclick事件  发帖心情 Post By:2022/6/29 9:30:00 [只看该作者]

老师好,窗口里面有很多文本输入框和下拉选择框,想实现双击的时候自动清除内容;
就在窗口的全局事件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
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/29 9:42:00 [只看该作者]

代码没有问题,有判断是文本框和组合框才会设置value。删除项目里的bin目录,重启项目试试

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

 回到顶部
帅哥哟,离线,有人找我吗?
bailing
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:241 积分:2121 威望:0 精华:0 注册:2020/5/4 17:14:00
  发帖心情 Post By:2022/6/29 10:05:00 [只看该作者]

删除bin后重新打开项目还是会报错,窗口的全局事件doubleclick里面只有贴的这一段代码,
任务栏具体指的是哪里不是很清楚,不过应该没有设置doubleclick;

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/29 10:06:00 [只看该作者]

请上传实例说明

 回到顶部
帅哥哟,离线,有人找我吗?
bailing
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:241 积分:2121 威望:0 精华:0 注册:2020/5/4 17:14:00
  发帖心情 Post By:2022/6/29 10:33:00 [只看该作者]

老师好,这是我用casestudy改的,也是同样的错误,麻烦看一下
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:窗口筛选_202206291031.zip


[此贴子已经被作者于2022/6/29 10:33:39编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:241 积分:2121 威望:0 精华:0 注册:2020/5/4 17:14:00
  发帖心情 Post By:2022/6/29 11:02:00 [只看该作者]

谢谢有点蓝老师

 回到顶部
帅哥哟,离线,有人找我吗?
bailing
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:241 积分:2121 威望:0 精华:0 注册:2020/5/4 17:14:00
  发帖心情 Post By:2022/6/29 11:49:00 [只看该作者]

老师不好意思,刚才双击其他的控件的时候确实不报错了,但是双击文本框的时候将整个窗口的textbox和combobox都清空了,麻烦老师再帮忙看一下

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110544 积分:562604 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/6/29 11:50:00 [只看该作者]

代码就是这种效果啦。如果只是清空当前控件,就不要遍历啊,直接处理当前控件即可

 回到顶部
帅哥哟,离线,有人找我吗?
bailing
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:241 积分:2121 威望:0 精华:0 注册:2020/5/4 17:14:00
  发帖心情 Post By: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

好了,谢谢啦

 回到顶部