知识大全 随心所欲绘制状态栏

Posted 属性

篇首语:吃的苦中苦,方为人上人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 随心所欲绘制状态栏相关的知识,希望对你有一定的参考价值。

  状态栏我不想详细解释 控件非常容易用 StatusBar和StatusBarPanel配合使用 非常简单 但是这样只是满足了基本的状态栏功能的需要 很多的时候我们可能还需要个性化的状态栏 我们需要随心所欲的绘制它 要做到这一点不难 StatusBarPanel类提供了Style属性 将其设置为StatusBarPanelStyle OwnerDraw就可以自己编写代码绘制它了 StatusBar的DrawItem事件当所有者描述的状态栏控件的可视特征发生变化时 发生此事件 在这个事件里安置绘制StatusBarPanel的程序代码

  StatusBarPanelStyle枚举可以决定StatusBarPanel是由系统绘制还是由程序员亲自编写程序进行绘制 有两种选择Text和OwnerDraw 前者要求StatusBarPanel按照标准字体显示文本 后者允许程序员自己写代码绘制StatusBarPanel 默认情况下是Text

  以下代码片断自行绘制StatusBarPanel

  在一个窗体上添加一个状态栏 将其ShowPanels属性设置为true 然后 对其Panels属性进行设置 添加 个StatusBarPanel 其中第二个的Style属性设置为Text 其余两个的Style设置为OwnerDraw

  Private Sub StatusBar _DrawItem(ByVal sender As Object ByVal sbdevent As System Windows Forms StatusBarDrawItemEventArgs) Handles StatusBar DrawItem

  Dim g As Graphics = sbdevent Graphics

  Dim rf As New RectangleF(sbdevent Bounds X sbdevent Bounds Y _

  sbdevent Bounds Width sbdevent Bounds Height)

  If (sbdevent Index = ) Then

  g FillRectangle(Brushes Red rf)

  Dim f As New Font( ËÎÌå )

  Dim b As Brush = Brushes Black

  g DrawString(sbdevent Panel Text f b rf)

  End If

  If (sbdevent Index = ) Then

  g FillRectangle(Brushes Red rf)

  Dim f As New Font( ËÎÌå )

  Dim b As Brush = Brushes Black

  g DrawString(sbdevent Panel Text f b rf)

  End If

  End Sub

  需要特别强调一下参数 System Windows Forms StatusBarDrawItemEventArgs 该类型的参数包含一个与DrawItem事件相关的数据 详见下表

  BackColor

  获取所绘制的项的背景色

  Bounds

  获取表示所绘制项的边界的矩形

  Font

  获取分配给所绘制项的字体

  ForeColor

  获取所绘制项的前景色

  Graphics

  获取要在其上绘制项的图形表面

  Index

  获取所绘制项的索引值

  Panel

  获取要绘制的StatusBarPanel

  State

  获取所绘制项的状态

  如何让状态条右下角的三角消失呢?

  将statusBar SizingGrip属性设置为false

  如何让状态栏不显示其StatusBarPanel?

  把statusBar的ShowPanel属性设置为false

  怎样在程序运行过程中向状态条添加(删除)面板?

  使用StatusBar的Panels属性

  Private Sub btnAddPanel_Click(ByVal sender As System Object ByVal e As System EventArgs) Handles btnAddPanel Click

  Dim panel As New StatusBarPanel

  panel Text = 动态添加的面板!

  Me StatusBar Panels Add(panel)

  End Sub

  Private Sub btnDelPanel_Click(ByVal sender As System Object ByVal e As System EventArgs) Handles btnDelPanel Click

  Dim str As String = 动态添加的面板!

  Dim panel As StatusBarPanel

  For Each p As StatusBarPanel In Me StatusBar Panels

  If (p Text = str) Then

  panel = p

  End If

  Next

  If (Not (panel Is Nothing)) Then

  Me StatusBar Panels Remove(panel)

  End If

  End Sub

  如何在状态条面板上显示图标?

  使用StatusBarPanel Icon属性

  如何自动分配状态条空间?

cha138/Article/program/net/201311/12124

相关参考

知识大全 平板电脑上下状态栏都没有了,怎么办

平板电脑上下状态栏都没有了,怎么办?平板电脑是一中没有返回键没有主页键没有选项键的,那种全触摸屏状态栏崩溃了我之前也是你重置ADW试试或者去运行中的程序把状态栏关闭重启再不济恢复出厂设置(我就是)安卓

知识大全 用状态栏提示改善JavaGUI

用状态栏提示改善JavaGUI  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一个应用程序有多复

知识大全 winform状态栏跑马灯的效果

   usingSystemCollectionsGeneric;   usingSystemComponentModel;   usingSystemData;&nbs

知识大全 时钟广告跳转状态栏等JS代码

时钟广告跳转状态栏等JS代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  判断网页是否过期ge

知识大全 用DELPHI在状态栏中显示进程条[2]

用DELPHI在状态栏中显示进程条[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  上面的步

知识大全 用DELPHI在状态栏中显示进程条[1]

用DELPHI在状态栏中显示进程条[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!经常上网的朋

知识大全 VB.NET实现窗体图标最小化到状态栏

VB.NET实现窗体图标最小化到状态栏  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文所使用

知识大全 我今天2点58的时候委托买股票,现在状态说明栏显示的是已报,我是买到没有呢

我今天2点58的时候委托买股票,现在状态说明栏显示的是已报,我是买到没有呢?账户上的钱怎么不见了您好,针对您的问题,国泰君安上海分公司给予如下解答您好,显示“已报”,就是这笔委托已经发送出去了,但是没

知识大全 平板电脑下方返回键消失怎么设置回来

平板电脑下方返回键消失怎么设置回来状态栏崩溃了我之前也是你重置ADW试试或者去运行中的程序把状态栏关闭重启再不济恢复出厂设置(我就是)苹果平板电脑返回键怎么设置触摸的在设置通用里面点辅助功能里的平板电

知识大全 平板电脑返回键没了怎么恢复

平板电脑返回键没了怎么恢复,平板电脑返回键在哪里平板电脑怎么返回桌面状态栏崩溃了我之前也是你重置ADW试试或者去运行中的程序把状态栏关闭重启再不济恢复出厂设置(我就是)优学派平板电脑U18返回键和起它