当前位置:首页 > 英文周记 > 正文内容

statu**ar「statu**ars2」

更新时间:2026-07-18 00:01:37 周记网4年前 (2023-01-25)英文周记155

status bar是什么意思

status bar

n.状态栏;

statu**ar「statu**ars2」

以上结果来自金山词霸

例句:

1.

They typically place a persistent icon in the status bar, which users can open to get themessage.

一般来说是在状态栏上放一个持久的图标,用户可以打开它并获取消息。

StatusBar的用处

StatusBar 控件由 Panel 对象组成,每一个 Panel 对象能包含文本和/或图片。控制个别面板的外观属性包括 Width、Alignment(文本和图片的)和 Bevel。此外,能使用 Style 属性七个值中的一个自动地显示公共数据,诸如日期、时间和键盘状态等。

在设计时,在 StatusBar 控件的属性页的“窗格”选项卡中设置的值能建立面板并定制它们的外观。在运行时,能重新配置 Panel 对象以反映不同的功能,这些功能取决于应用程序的状态。关于 Panel 对象的属性、事件和方法的详细信息,请参阅“Panel 对象和 Panels **”的主题。

StatusBar 控件代表性地显示有关在窗体上查看的对象、对象组件的信息或关系到对象操作的上下文的信息。StatusBar 控件与其它控件如 Toolbar 控件一起,提供建立界面的工具,该界面既经济又含有丰富的信息。

发行注意 StatusBar 控件是自定义控件组的一部分,该控件可在 MSCOMCTL.OCX 文件中找到。为了在应用程序中使用 StatusBar 控件,必须将 MSCOMCTL.OCX 文件添加到工程中。当发布应用程序时,请在用户的 Microsoft Windows SYSTEM 目录下安装 MSCOMCTL.OCX 文件。如何将自定义的控件添加到工程中的详细信息,请参阅《程序员指南》。

StatusBar 控件常数

StatusBar 样式常数

常数 值 描述

**rNormal 0 正常。StatusBar 被分成面板。

**rSimple 1 简化。StatusBar 只有一个大面板和简化文本。

面板对齐常数

常数 值 描述

**rLeft 0 文本靠左。

**rCenter 1 文本居中。

**rRight 2 文本靠右。

面板自动调整大小常数

常数 值 描述

**rNoAutoSize 0 非自动调整大小。

**rSpring 1 在面板中划分附加空间。

**rContents 2 符合于目录。

面板斜面常数

常数 值 描述

**rNoBevel 0 无斜面。

**rInset 1 斜面插入。

**rRaised 2 斜面凸起。

面板样式常数

常数 值 描述

**rText 0 显示文本和/或位图。

**rCaps 1 显示 Caps Lock 状态。

**rNum 2 显示 Number Lock 状态。

**rIns 3 显示 Insert 键状态。

**rScrl 4 显示 Scroll Lock 状态。

**rTime 5 以 System 格式显示时间。

**rDate 6 以 System 格式显示日期。

**rKana 7 Kana。当激活滚动锁定时,显示黑体字母 KANA,反之当停用滚动锁定时,则显示暗淡的字母 KANA。

如何改变statu**ar的背景颜色

你可以绘制statu**ar中的panel或者干脆自己绘制,我这里只是举一个简单的测试例子,其他的你要自己来加:

Imports System.ComponentModel

Public Class mystatu**ar

Inherits System.Windows.Forms.StatusBar

Public Sub New()

MyBase.New()

'该调用是 Windows 窗体设计器所必需的。

InitializeComponent()

'在 InitializeComponent() 调用之后添加任何初始化

Me.SetStyle(ControlStyles.UserPaint, True)

End Sub

Private _backcolor As Color = SystemColors.Control '背景颜色

Description("背景颜色。") _

Public Property barbackcolor() As Color

Get

Return _backcolor

End Get

Set(ByVal Value As Color)

_backcolor = Value

Me.Invalidate()

End Set

End Property

Public Enum barborderstyleitem

style1 = 0‘应该是边框的类型,这里没有去做处理。

style2 = 1

style3 = 2

End Enum

Private m_barstyle As barborderstyleitem = barborderstyleitem.style1

Description("边框类型。") _

Public Property barborderstyle() As barborderstyleitem

Get

Return m_barstyle

End Get

Set(ByVal Value As barborderstyleitem)

m_barstyle = Value

Me.Invalidate()

End Set

End Property

Protected Overrides Sub OnPaint(ByVal pevent As System.Windows.Forms.PaintEventArgs)

'pevent.ClipRectangle指在其中绘制的矩形,即使用父控件的背景色来画这个矩形按钮

pevent.Graphics.FillRectangle(New SolidBrush(Me.Parent.BackColor), pevent.ClipRectangle)

If (Enabled = False) Then

'画不可用状态

DrawDisable(pevent.Graphics)’没有去处理。

Else '一般情况下

DrawNormal(pevent.Graphics)

End If

End Sub

Private Sub DrawBorder(ByVal g As Graphics)

If (m_barstyle = barborderstyleitem.style1) Then '绘制一般边框

'

Dim p As Pen = New Pen(SystemColors.ControlLightLight, 2)

g.DrawLine(p, 1, 1, 1, Height - 2) '绘制左侧竖线

g.DrawLine(p, 1, 1, Width - 2, 1) '绘制上面横线

g.DrawLine(p, Width - 1, 2, Width - 1, Height - 2) '绘制右侧竖线,由于已经在上面绘制了横线(纵坐标为1),所以从2开始

g.DrawLine(p, 2, Height - 1, Width - 2, Height - 1) '绘制下面横线

End If

End Sub

'一般状态

Private Sub DrawNormal(ByVal g As Graphics)

'绘制边框,宽度为1

DrawBorder(g)

'绘制背景

PaintBack(g)

paintpanel(g)

End Sub

'不可用状态

Private Sub DrawDisable(ByVal g As Graphics)

''绘制边框,宽度为1

'DrawBorder(g)

''绘制背景,用高光点颜色

'PaintBack(g, SystemColors.ControlLightLight)

End Sub

Private Sub paintpanel(ByVal g As Graphics)

Dim p As StatusBarPanel

Dim pen As New Pen(Color.Black)

For Each p In Me.Panels‘注意,这里没有考虑多个panel的情况,你要每次累加横坐标才可以。

g.DrawLine(pen, 2, 2, 2, Height - 4) '绘制左侧竖线

g.DrawLine(pen, 1, 1, p.Width - 2, 1) '绘制上面横线

g.DrawLine(pen, p.Width - 1, 2, p.Width - 1, Height - 2)

g.DrawLine(pen, 4, Height - 1, p.Width - 4, Height - 4)

Next

End Sub

'绘制背景色

Private Sub PaintBack(ByVal g As Graphics)

g.FillRectangle(New SolidBrush(Me._backcolor), 3, 3, Width - 6, Height - 6)

End Sub

End Class

CAD中statu**ar命令输入3的时候提示仅需要0或1是什么原因?

试了一下,2017cad也是这样的,statu**ar的值只能是0或1,不可以设置为3的。状态栏图标变文字,网上搜索了一下,回答确实是设置值为3但是人家用的是2016的,到了2017就不好使了,可能往后的就不让这么设置了吧。虽然状态栏显示的是图标但是光标放在上面就会显示文字了啊,不也一样看么。

如何控制Status Bar的隐藏和显示

1.在info.plist设置中,View

controller-based

status

bar

appearance的值要设置成YES,经测试当是NO的时候,接下来要做的事不会被执行。(也可能是其他设置的问题,本座还不清楚)

2.在ViewController.m中添加(ViewController.m是创建项目时自动生成的rootViewController)

//控制状态栏显隐

-

(UIViewController*)childViewControllerForStatusBarHidden{

return

yourChildViewContoller1;

}

//控制状态栏样式

-

(UIViewController*)childViewControllerForStatusBarStyle{

return

yourChildViewContoller2;

}

由child

controller

来控制状态栏的显隐和样式。

如果希望状态栏的样式是UIStatusBarStyleLightContent且在全局设置中已经设置好了,由于第1步的设置会导致全局设置无效,所以还要加上对样式的控制。

3.在yourChildViewContoller1.m中添加

//是否隐藏状态栏

-

(BOOL)prefersStatusBarHidden{

if

(//什么鬼情况下)

{

return

YES;//隐藏

}

return

NO;//显示

}

在yourChildViewContoller2.m中添加

-

(UIStatusBarStyle)preferredStatusBarStyle{

return

UIStatusBarStyleLightContent;

}

yourChildViewContoller1和yourChildViewContoller2可以是同一个,也可以是不同的

4.关键的来了

在第3步中添加的方**在app载入后立即执行,在后面的操作过程中是不会被执行的

当希望状态栏改变状态的时候,需要执行这个方法[self

setNeedsStatusBarAppearanceUpdate];(本座搜索到的其他网友的文章中都是这样说的,但是还没有交代清楚)

如果在yourChildViewContoller1、yourChildViewContoller2中执行这个方法,是无效的

本座猜测,状态栏只能由ViewController来控制,第2步中的设置相当于加了个代理,由代理来决定结果,但是要代理来执行还得由ViewController来发出命令,所以setNeedsStatusBarAppearanceUpdate方法得是ViewController来调用。

改成[[[[UIApplication

sharedApplication]

keyWindow]

rootViewController]

setNeedsStatusBarAppearanceUpdate];在代理的child

controller中执行就OK了。

标签: statusbar

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。