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

相关推荐
txinyu的博客22 分钟前
HTTP服务实现用户级窗口限流
开发语言·c++·分布式·网络协议·http
代码村新手23 分钟前
C++-类和对象(上)
开发语言·c++
全栈小精灵32 分钟前
Winform入门
开发语言·机器学习·c#
心静财富之门32 分钟前
退出 for 循环,break和continue 语句
开发语言·python
txinyu的博客34 分钟前
map和unordered_map的性能对比
开发语言·数据结构·c++·算法·哈希算法·散列表
Mr -老鬼1 小时前
Rust适合干什么?为什么需要Rust?
开发语言·后端·rust
予枫的编程笔记1 小时前
【Java集合】深入浅出 Java HashMap:从链表到红黑树的“进化”之路
java·开发语言·数据结构·人工智能·链表·哈希算法
ohoy1 小时前
RedisTemplate 使用之Set
java·开发语言·redis
mjhcsp1 小时前
C++ 后缀数组(SA):原理、实现与应用全解析
java·开发语言·c++·后缀数组sa
hui函数1 小时前
如何解决 pip install 编译报错 ‘cl.exe’ not found(缺少 VS C++ 工具集)问题
开发语言·c++·pip