vb6.0中怎样让焦点始终停在窗体上而不会因点了控件后落到近控件上(控件能起作用)
2个回答
2013-12-28
展开全部
首先新建一个EXE工程,再在窗体上拖几个Label控件,看看Label 的强大功能吧,原理就是利用Label来模拟一个按钮,但是首先要将Label控件的属性要调一下,
Name: LblBtn,
BorderStyle: 1,
Appearance: 0,
Alignment: 2,
这样一个按钮的雏形就已经出来了,如果工程量很大,可以将多个Label控件的Name属性设为一样的,对于按钮的识别就要靠识别Index属性了,为了方便起见,在进入到代码编辑窗口,输入以下代码:
Private Const LBL_BACK_COLOR = &HE0E0E0 ’正常时Label控件的背景色
Private Const LBL_WHEN_MOUSE_MOVE = &HC0C0C0 ’鼠标移动时Label的背景色
Private Const LBL_WHEN_MOUSE_DOWN = &H808080 ’鼠标按下时Label的背景色
再在Form的Load事件中输入以下内容
Private Sub Form_Load()
Dim Count As Integer
For Count = 0 To 3 ’请将此出的3换成你的LblBtn数量的个数-1
LblBtn(Count).BackColor=LBL_BACK_COLOR ’初始化LblBtn的背景
Next Count
End Sub
然后再在LblBtn的MouseMove和MouseDown事件中来搞定剩余部分:
Private Sub LblBtn_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) ’当鼠标按在LblBtn上时
LblBtn(Index).BackColor = LBL_WHEN_MOUSE_DOWN ’临时改变LblBtn背景颜色
End Sub
Private Sub LblBtn_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) ’鼠标在LblBtn上面移动时触发该事件
Dim Count As Integer
DoEvents ’暂时将系统控制权教给系统
If Button Then Exit Sub ’如果按钮被按下就退出该过程
For Count = 0 To 3
If Count <> Index Then ’如果按下的不是其它按钮
LblBtn(Index).BackColor = LBL_BACK_COLOR ’将背景设为正常
Else
LblBtn(Index).BackColor = LBL_WHEN_MOUSE_MOVE ’将背景设为鼠标移动的背景
End If
Next Count
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Count As Integer
DoEvents
For Count=0 To 3
LblBtn(Count).BackColor=LBL_BACKCOLOR ’恢复背景
Next Count
End
Name: LblBtn,
BorderStyle: 1,
Appearance: 0,
Alignment: 2,
这样一个按钮的雏形就已经出来了,如果工程量很大,可以将多个Label控件的Name属性设为一样的,对于按钮的识别就要靠识别Index属性了,为了方便起见,在进入到代码编辑窗口,输入以下代码:
Private Const LBL_BACK_COLOR = &HE0E0E0 ’正常时Label控件的背景色
Private Const LBL_WHEN_MOUSE_MOVE = &HC0C0C0 ’鼠标移动时Label的背景色
Private Const LBL_WHEN_MOUSE_DOWN = &H808080 ’鼠标按下时Label的背景色
再在Form的Load事件中输入以下内容
Private Sub Form_Load()
Dim Count As Integer
For Count = 0 To 3 ’请将此出的3换成你的LblBtn数量的个数-1
LblBtn(Count).BackColor=LBL_BACK_COLOR ’初始化LblBtn的背景
Next Count
End Sub
然后再在LblBtn的MouseMove和MouseDown事件中来搞定剩余部分:
Private Sub LblBtn_MouseDown(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) ’当鼠标按在LblBtn上时
LblBtn(Index).BackColor = LBL_WHEN_MOUSE_DOWN ’临时改变LblBtn背景颜色
End Sub
Private Sub LblBtn_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) ’鼠标在LblBtn上面移动时触发该事件
Dim Count As Integer
DoEvents ’暂时将系统控制权教给系统
If Button Then Exit Sub ’如果按钮被按下就退出该过程
For Count = 0 To 3
If Count <> Index Then ’如果按下的不是其它按钮
LblBtn(Index).BackColor = LBL_BACK_COLOR ’将背景设为正常
Else
LblBtn(Index).BackColor = LBL_WHEN_MOUSE_MOVE ’将背景设为鼠标移动的背景
End If
Next Count
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim Count As Integer
DoEvents
For Count=0 To 3
LblBtn(Count).BackColor=LBL_BACKCOLOR ’恢复背景
Next Count
End
2013-12-28
展开全部
把变量申明写在标准模块里!
工程-添加模块,就可以添加一个模块。在模块中用public 定义如:public a as string
VB程序设计 请到 How To 来 ,QQ群至号:51753995
工程-添加模块,就可以添加一个模块。在模块中用public 定义如:public a as string
VB程序设计 请到 How To 来 ,QQ群至号:51753995
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询