注册 登录
编程论坛 VB6论坛

关于VB自定义鼠标右键

xingming022 发布于 2015-01-26 17:05, 1081 次点击

只有本站会员才能查看附件,请 登录

Private Sub Text2_Mousedown(button As Integer, shift As Integer, X As Single, Y As Single)
If button = vbKeyRButton Then
    PopupMenu mnushortcut
End If
End Sub '*******************************************************鼠标右键中的菜单

运行后
在屏幕左上角出现如下菜单:
只有本站会员才能查看附件,请 登录

12 回复
#2
xzlxzlxzl2015-01-26 19:32
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  Text1.Enabled = False
  Text1.Enabled = True
  If Button = vbRightButton Then PopupMenu mnushortcut
End Sub
#3
xingming0222015-01-27 10:32
回复 2楼 xzlxzlxzl
非常感谢您的回复,右键问题解决了,还有两个小问题想请教下:
1.为何文本框先设置成无效再设置成有效就可以了?
2.鼠标左键功能如何恢复成默认那种,就是可以逐行选择那种?
谢谢~
#4
xzlxzlxzl2015-01-27 12:39
1,可拦截鼠标右键消息,让自定义菜单优先弹出
2,我真不知道左键默认功能是什么。
#5
xingming0222015-01-27 13:40
回复 4楼 xzlxzlxzl
默认的左键功能是可以任意选择文字的,选择上之后的文字就涂上蓝色底色了。
但是如果自定义了右键功能就无法选择文字了。
#6
lianyicq2015-01-27 15:16
借 xzlxzlxzl版主的花
程序代码:
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  If Button <> vbRightButton Then Exit Sub
  Text1.Enabled = False
  Text1.Enabled = True
  PopupMenu mnushortcut
End Sub

#7
xingming0222015-01-27 16:11
回复 6楼 lianyicq
非常感谢您的回复,按照您给的代码,鼠标左键可以选择了,并也涂上蓝色底色了,但是一按右键,蓝色底色又没有了。能再指导下么啊?谢谢~
#8
lianyicq2015-01-27 16:27
回复 7楼 xingming022
我这儿没问题,看抓屏。先用左键选取了,再点右键弹出菜单。
只有本站会员才能查看附件,请 登录
#9
xingming0222015-01-29 14:54
回复 8楼 lianyicq
您好,我把我编写的发给您,麻烦再指导下。
只有本站会员才能查看附件,请 登录
#10
lianyicq2015-01-29 15:47
回复 9楼 xingming022
我测试时窗体上只有一个textbox控件,没有其它控件。你的工程上有其它控件。感觉是焦点问题。
你将文本框的hideselection设为false。
这是一个只读属性,只能在属性窗口中设。



 

[ 本帖最后由 lianyicq 于 2015-1-29 16:32 编辑 ]
#11
xingming0222015-01-29 16:50
回复 10楼 lianyicq
OK了,谢谢您了~
#12
xzlxzlxzl2015-01-29 17:34
不知道是不是我理解有误,可以加setfocuse的,截图如下(代码在截图里看):
只有本站会员才能查看附件,请 登录
#13
lianyicq2015-01-30 08:29
回复 12楼 xzlxzlxzl
xzlxzlxzl版主的方法用起来效果更好,更普遍。我想,通过属性设置保持高亮唯一的好处在于在操作其它文本框时,还能看到以前文本框的选择区。
1