Visual Basic 创建状态栏

创建状态栏

状态栏通常位于窗口的底部,主要用于显示应用程序的各种状态的信息。StatusBar控件是ActiveX控件,添加的方法与ImageList相同,添加后在控件工具箱中出现StatusBar控件的图标

状态栏控件是由面板(Panels)集合构成的,在集合中最多可包含16个窗格对象,每个对象可以显示图像和文本。如图7.17所示,显示了一个具有三个窗格的状态栏。

图7.17 状态栏示例

在运行时,可以通过Text,Picture和Width等属性动态地改变窗格对象。要在设计时更改窗格对象的属性或添加窗格对象,可以用鼠标右键单击控件,然后选择"属性"来显示"属性页"对话框,如图7.18所示。

图7.18 状态栏属性页

在状态栏控件的"属性页"对话框中,"通用"标签上的为状态栏的通用属性,包括Style,MousePointer,SimpleText,OLEDropMOde,Enabled和ShowTips属性。"窗格"标签上的是窗格的属性,其中索引(Index)是一个从1开始的数值,用它来唯一标识集合中的对象。"插入窗格"按钮创建一个新的窗格,"删除窗格"按钮删除当前索引号所指的窗格。文本(Text)属性设置窗格对象的标签。图片(Picture)属性设置窗格上显示的图片,其与文本属性显示相对位置要根据对齐方式的设置。工具提示文本(ToolTipText)设置当用户将鼠标放在窗格上是显示的提示信息。关键字(Key)属性设置一个唯一标识集合中对象的字符串,它的作用和索引类似。对齐(Alignment)属性设置窗格对象上文本的对齐方式,有左对齐、居中对齐、右对齐。

样式(Style)属性设置窗格的样式,这也是状态栏控件最有用的部分,能够用最少的代码显示键盘状态、时间和日期。如表7.5所示,列出了Style属性的设置值。

表7.5 状态栏控件窗格对象的Style属性设置值

|---------|---|----------------------------------------------------------------------------------|
| 常 数 | 值 | 说 明 |
| sbrText | 0 | 默认值。显示文本和图片 |
| sbrCaps | 1 | 显示Caps Lock键状态。当Caps Lock处于激活状态时,显示粗体字母CAPS,反之则显示灰色字母CAPS。可以通过设置文本属性更改显示的字符串 |
| sbrNum | 2 | 显示Num Lock键状态。当Num Lock处于激活状态时,显示粗体字母NUM,反之则显示灰色字母NUM。可以通过设置文本属性更改显示的字符串 |
| sbrIns | 3 | 显示Insert键状态。当Insert键处于激活状态时,显示粗体字母INS,反之则显示灰色字母INS。可以通过设置文本属性更改显示的字符串 |
| sbrScrl | 4 | 显示Scroll Lock键状态。当Scroll Lock处于激活状态时,显示粗体字母SCRL,反之则显示灰色字母SCRL。可以通过设置文本属性更改显示的字符串 |
| sbrTime | 5 | 显示系统时间。此时忽略该窗格的文本属性 |

续表

|---------|---|-----------------------------|
| 常 数 | 值 | 说 明 |
| sbrDate | 6 | 显示系统日期。此时忽略该窗格的文本属性 |
| sbrKana | 7 | 显示Kana Lock键状态(仅在日文操作系统中有效) |

窗格对象的最小宽度、实际宽度和自动调整大小属性是和它的显示宽度有关的。斜面属性决定窗格的外观,是凹的、凸的或平面的。

状态栏控件的事件包括PanelClick事件和PanelDblClick事件等。需要获得相应状态栏的单击事件,可以在PanelClick事件过程中使用Select Case语句。该事件包含的参数能够指出发生单击的窗格对象。相应的代码可如下:

Private Sub StatusBar1_PanelClick(ByVal Panel As MSComctlLib.Panel)

Select Case Panel.Index

Case 1

'相应处理程序段1...

Case 2

'相应处理程序段2...

Case Else

'处理其他情况...

End Select

End Sub

相关推荐
api_180079054602 小时前
【技术教程】Python/Node.js 调用拼多多商品详情 API 示例详解
大数据·开发语言·python·数据挖掘·node.js
郑州光合科技余经理2 小时前
乡镇外卖跑腿小程序开发实战:基于PHP的乡镇同城O2O
java·开发语言·javascript·spring cloud·uni-app·php·objective-c
@木辛梓3 小时前
指针,数组,变量
开发语言·c++·算法
yqsnjps74658ocz3 小时前
如何检查Visual Studio是否支持C++14?
c++·ide·visual studio
漠然&&3 小时前
实战案例:用 Guava ImmutableList 优化缓存查询系统,解决多线程数据篡改与内存浪费问题
java·开发语言·缓存·guava
buvsvdp50059ac3 小时前
如何在Visual Studio中启用C++17或C++20?
c++·c++20·visual studio
yqsnjps74658ocz3 小时前
如何在Visual Studio中设置项目为C++14?
java·c++·visual studio
buvsvdp50059ac3 小时前
如何在Visual Studio中启用C++14的特性?
java·c++·visual studio
zhangkaixuan4563 小时前
Flink 写入 Paimon 流程:Checkpoint 与 Commit 深度剖析
java·开发语言·微服务·flink·paimon