电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

Bounds

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

Font

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

ForeColor

获取所绘制项的前景色

Graphics

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

Index

获取所绘制项的索引值

Panel

获取要绘制的StatusBarPanel

State

获取所绘制项的状态

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

将statusBarSizingGrip属性设置为false

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

把statusBar的ShowPanel属性设置为false

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

使用StatusBar的Panels属性

Private Sub btnAddPanel_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles btnAddPanelClick

Dim panel As New StatusBarPanel

panelText = 动态添加的面板!

MeStatusBarPanelsAdd(panel)

End Sub

Private Sub btnDelPanel_Click(ByVal sender As SystemObject ByVal e As SystemEventArgs) Handles btnDelPanelClick

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

Dim panel As StatusBarPanel

For Each p As StatusBarPanel In MeStatusBarPanels

If (pText = str) Then

panel = p

End If

Next

If (Not (panel Is Nothing)) Then

MeStatusBarPanelsRemove(panel)

End If

End Sub

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

使用StatusBarPanelIcon属性

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

使用StatusBarPanelAutoSize属性该值指示是否自动调整状态栏面板的大小该属性接受一个StatusBarPanelAutoSize枚举默认值是StatusBarPanelAutoSizeNone这意味着不论状态条如何面板始终保持大小不变除此之外还有两种选择Contents和Springs前者表示面板宽度取决于其内容后者表示面板大小会被自动调整至于调整之后合适与否那我可就说不准了如果AutoSize设置为Springs还可以用MinWidth属性设置最小宽度

随心所欲绘制状态栏


发布日期:2022/3/10
 

状态栏我不想详细解释控件非常容易用StatusBar和StatusBarPanel配合使用非常简单但是这样只是满足了基本的状态栏功能的需要很多的时候我们可能还需要个性化的状态栏我们需要随心所欲的绘制它要做到这一点不难StatusBarPanel类提供了Style属性将其设置为StatusBarPanelStyleOwnerDraw就可以自己编写代码绘制它了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 SystemWindowsFormsStatusBarDrawItemEventArgs) Handles StatusBarDrawItem

Dim g As Graphics = sbdeventGraphics

Dim rf As New RectangleF(sbdeventBoundsX sbdeventBoundsY _

sbdeventBoundsWidth sbdeventBoundsHeight)

If (sbdeventIndex = ) Then

gFillRectangle(BrushesRed rf)

Dim f As New Font(ËÎÌå )

Dim b As Brush = BrushesBlack

gDrawString(sbdeventPanelText f b rf)

End If

If (sbdeventIndex = ) Then

gFillRectangle(BrushesRed rf)

Dim f As New Font(ËÎÌå )

Dim b As Brush = BrushesBlack

gDrawString(sbdeventPanelText f b rf)

End If

End Sub

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

BackColor

获取所绘制的项的背景色

上一篇:一起学WCF--消息通信模式

下一篇:平台调用P-INVOKE完全掌握10