关于[ComboBox]

painAndhappy 2003-11-10 12:20:36
我想在鼠标移入到ComboBox控件范围中时,label框显示"移入",移出时把label框清空.
请问该怎么实现?
...全文
5 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
painAndhappy 2003-11-14
无奈结贴!
回复
painAndhappy 2003-11-12
没有人回答了么?
回复
painAndhappy 2003-11-11
谢谢各位!

TO:rainstormmaster(rainstormmaster)

请贴出关于处理combobox的方法.

另:

在Command1的MouseMove事件中,如果移动速度快的话,好象就不能实现了.这是否是和触发事件的时间间隔有关?有修正的方法吗?
回复
rainstormmaster 2003-11-10
只要鼠标进入控件就产生MouseMove事件(遗憾的是combobox不支持这一事件,下面是实现CommandButtun的有关消息的例子),你可以用第一次触发MouseMove事件来代替MouseIn事件。
至于MouseLeave事件就麻烦,可以利用Form的MouseMove事件来代替控件的MouseLeave事件。
如果控件具有hWnd属性(Label没有这个属性,但CommandButtun有),也可以调用SetCapture和ReleaseCapture这两个Windows API函
数的方法来实现它。具体步骤如下:
1) 在VB中新建一个标准EXE工程;
2) 画出一个按钮Command1;
3) 在窗体Form1中定义Windows API的声明;
Private Declare Function SetCapture Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
4) 在Command1的MouseMove事件中编写以下代码:
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim MouseEnter As Boolean '鼠标进入的标志位

MouseEnter = (0 <= X) And (X <= Command1.Width) And (0 <= Y) And (Y <=
Command1.Height) '计算鼠标的移动是否在Command1里面
If MouseEnter Then '鼠标已经进入
Me.Caption = "Mouse In Button!"
SetCapture Command1.hWnd
Else '鼠标已经离开
Me.Caption = "Mouse Out!"
ReleaseCapture
End If
End Sub
另外一个简单的办法是使用免费的MouseTrap控件(http://www.halfx.com/downloads/MouseTrap.EXE)。


关于处理combobox的我会在下面贴出
回复
aiur2000 2003-11-10
按键盘:
combobox.getfocus事件中
label.caption=移入
combobox.lostfocus事件中
写label的正常显示
回复
aiur2000 2003-11-10
按鼠标:
combobox.mousemove事件中
label.caption=移入
form.mousermove中
写label的正常显示
回复
发动态
发帖子
控件
创建于2007-09-28

1422

社区成员

VB 控件
申请成为版主
社区公告
暂无公告