vb.net漂亮界面 vb做界面( 二 )


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 CountIndex 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
本来利用Windows的消息系统来完成这一“艰巨”的任务最简单,可问题就来了,Label控件没有窗口句柄怎么办?可是此问题与题无关,写了会有骗稿费之:)
OK , Label控件就讲到这里,在来说说TextBox控件,
各位看关恐怕看惯了白颜色的背景,那么就换换颜色以养养俺们那和绵羊一样的眼睛(为什么说绵羊?俺也不知道),可是VB提供的RGB函数弄出来的颜色不是怎么好看,这里俺来教大家一个小Tip,RGB函数的Red , Green , Blue这三个参数若一样,则产生的颜色是灰度 , 当然越接近白颜色越好,但也不能让各位看不出来,俺建议TextBox的背景为RGB(235,235 , 235) , 各位还是实战一下,将一个TextBox拖到窗体上 , 属性设置如下
Appearance 0
BorderStyle 1
MutilLine True
千万不要设置ScrollBars属性,否则会影响效果
在Form的Load事件中初始化TextBox
Dim bkColor As Long
Private Sub Form_Load()
bkColor=RGB(235,235,235)
Text1.BackColor=bkColor
End Sub
在Form和Text1的MouseMove事件中:
Private Sub Form_MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)
Text1.BorderStyle = 0
End Sub
Private Sub Text1_MouseMove(Button As Integer ,  Shift As Integer, X As Single,Y As Single)
DoEvents
Text1.BorderStyle = 1
End Sub
在按下F5试试是不是很Cool?
可能各位看关玩过石器时代,一定会对里面的TextBox的效果感到很爽,VB还不是可以做到,有焦点的控件可以使用SetFocus方法来为其设置焦点 , 可是一个窗体上如果控件太多了,一个一个的用SetFocus是不是太傻了?这一节的主角就是--------API函数,
首先声明:
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib "user32" Alias "WindowFromPoint" (ByVal xPoint As Long,ByVal yPoint As Long) As Long
Private Declare Function SetFocus Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long

推荐阅读