状态栏是VB中的一个很有用的控件,但是默认状态下它不在控件面板中,在我们使用它之前必须先添加,方法是按下Ctrl+T快捷键,在弹出的“Components”对话框中选中MS Windows Common Controls。这时在控件面板中会出现状态栏的小图标,双击此图标就能把它添加到窗体中。
接下来我们根据自己的需要来编辑状态栏,选中窗体上的状态栏,在鼠标右键菜单中选择“属性Properties”,这时会弹出如上图所示的对话框,我们选择“Panels窗格”。其中“Insert Panel”按钮用来添加状态栏中的窗格数目,当我们添加一个窗格后“Index”的值也会自动加一,在程序中我们通过窗格的索引值来引用窗格。下面的一些项目都是窗格的属性,我们可以在此设置也可在程序中控制它。比较常用的属性有:
“Text”--在各个窗格中显示的文字;
“Alignment”--窗格中文本的对齐方式;
“Style”窗格的样式(选择0-sbrText为显示文本,选择6-sbrDate为显示日期等等);
“Bevel”--窗格的凹凸状态。
另外我们还可以在窗格中加入图片,方法是点击“Browse”然后选中图片文件。
在本程序中我们在第一个窗格中动态显示帮助信息,在第二、三个窗格中分别显示日期和时间。那么怎样在程序中控制状态栏中显示的文本呢?
例如我们希望鼠标移动到不同的按钮上时状态栏的第一个窗格中显示不同的帮助,则我们在按钮的OnMouseOver事件中加入如下语句即可:
Private Sub CmdNew_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
staSample.Panels(1).Text = ""
staSample.Panels(1).Text = "清空文本框"
End Sub
同样的我们能为其它按钮等控件添加帮助信息。
为了学习方便,提供的源码已经作了详细的中文注释,看看代码:
’--------------------------------------
’ 一个使用StatusBar的例子
’--------------------------------------
’ 洪恩在线 求知无限
’--------------------------------------
’------名称-------------作用------------
’ CmdItalic “斜体”按钮
’ CmdBold “粗体”按钮
’ CmdExit “退出”按钮
’ CmdNew “重写”按钮
’ Text1 文本框
’ frmStatusBar 主窗体
’ staSample 状态栏
’--------------------------------------
Option Explicit
’当“斜体”按钮按下时
Private Sub CmdItalic_Click()
’将文本框中的字体设为斜体
Text1.FontItalic = True
End Sub
’当鼠标移动到“斜体”按钮上时
Private Sub CmdItalic_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
’把状态栏的第一个Panels中的Text属性设为"转化为斜体"的帮助信息
staSample.Panels(1).Text = ""
staSample.Panels(1).Text = "转化为斜体"
End Sub
’当“粗体”按钮按下时
Private Sub CmdBold_Click()
’将文本框中的字体设为粗体
Text1.FontBold = True
End Sub
’当鼠标移动到“粗体”按钮上时
Private Sub CmdBold_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
’把状态栏的第一个Panels中的Text属性设为"转化为粗体"的帮助信息
staSample.Panels(1).Text = ""
staSample.Panels(1).Text = "转化为粗体"
End Sub
’当“退出”按钮按下时
Private Sub CmdExit_Click()
’退出程序
Unload Me
End Sub
’当鼠标移动到“退出”按钮上时
Private Sub CmdExit_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
’把状态栏的第一个Panels中的Text属性设为"退出程序"的帮助信息
staSample.Panels(1).Text = ""
staSample.Panels(1).Text = "退出程序"
End Sub
’当“重写”按钮按下时
Private Sub CmdNew_Click()
’将文本框中的文本清空
Text1.Text = ""
Text1.FontBold = False
Text1.FontItalic = False
End Sub
’当鼠标移动到“重写”按钮上时
Private Sub CmdNew_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
’把状态栏的第一个Panels中的Text属性设为"清空文本框"的帮助信息
staSample.Panels(1).Text = ""
staSample.Panels(1).Text = "清空文本框"
End Sub
Private Sub edit_Click()
frmProperties.Show vbModal
End Sub
’当鼠标移动到文本框上时
Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
’把状态栏的第一个Panels中的Text属性设为"输入文字"的帮助信息
staSample.Panels(1).Text = ""
staSample.Panels(1).Text = "输入文字"
End Sub
责任编辑:小草