8.3.3 StatusStrip(状态栏)控件

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的

StatusStrip控件,通常情况下显示于窗体最底部,用于显示程序相关信息,例如记事本的状态栏显示了鼠标当前所在的行和列。在C#编辑器中添加了StatusStrip后,它也显示在窗体的底部。

StatusStrip的常用属性:

  1. ImageScalingSize:所用图像的大小(以像素为单位)。
  2. Items:设置StatusStrip上的显示项。通过按下Items属性后面的按钮打开【项集合编辑器】来添加删除。

除了通过【项集合编辑器】来添加删除显示项外,还可以选中StatusStrip控件,单击它上面的向下箭头选择加入显示项。如果某显示项添加错误,则选中该项,按下键盘“DEL”按键即可删除。

图8-71 为StatusStrip控件添加显示项

StatusStrip控件的显示项实际对应4种控件:

1、ToolStripStatusLabel:工具栏状态标签控件,类似于普通Label控件,但是此控件还支持显示图片。

2、ToolStripProgressBar:工具栏进度栏控件,类似于普通的ProgressBar。注意:虽然可以通过StatusStrip的Dock属性设置StatusStrip所在位置区域,即使设置了在窗体的左侧显示,但是ToolStripProgressBar只能是横向的进度条。

3、ToolStripDropDownButton:工具栏下拉按钮,左侧标准按钮和右侧下拉箭头的组合,单击按钮或下拉箭头都会弹出菜单项。相应菜单项的添加请参考MenuStrip控件。

4、ToolStripSplitButton:工具栏分隔按钮,也是左侧标准按钮和右侧下拉箭头的组合,单击下拉箭头会弹出菜单项。相应菜单项的添加请参考MenuStrip控件。

ToolStripDropDownButton和ToolStripSplitButton界面差不多,使用时略有不同:单击ToolStripDropDownButton的按钮或下拉箭头都会出现菜单项;单击ToolStripSplitButton的按钮不会出现菜单项,只有单击旁边的下拉箭头才会弹出菜单项。

以上四种控件常用的属性:

  1. DisplayStyle:指定显示文本、图像的显示方式,包含以下值:
      1. Text:只显示文本。
      2. Image:只显示图像。
      3. ImageAndText:同时显示图像和文本。
      4. None:既显示图像,也不显示文本。
  1. ImageScaling:指示是否根据容器自动调整图像的大小,默认是SizeToFit(自动调整为适合大小),图像大小与StatusStrip的ImageScalingSize属性相同。
  2. TextDirection:文本的方向。当设置了StatusStrip的Dock属性为Right或是Left,可以选中ToolStripStatusLabel设置它的属性TextDirection为Vertical90或是Vertical270,使文本能够旋转90度或270度显示。

ToolStripStatusLabel独有的属性:

  1. IsLink:指示ToolStripStatusLabel是否为一个超链接。如果设置为True(超链接),那么将可以使用LinkBehavior、LinkVisited、ActiveLinkColor、LinkColor、VisitedLinkColor等超链接相关的属性修改界面显示。同LinkLabel控件,访问超链接需要添加相应的代码。

在实际使用中,StatusStrip相当于上述四种控件的容器,具体的界面、事件都是由具体的子控件来完成。

【例 8.48【项目:code8-048】使用StatusStrip中的控件和事件。

在窗体上放置两个Button控件、一个StatusStrip控件。StatusStrip上增加一个ToolStripProgressBar和一个ToolStripStatusLabel。

        private void Form1_Load(object sender, EventArgs e)

        {

            //设置ToolStripStatusLabel1显示样式

            toolStripStatusLabel1.AutoSize = false;

            toolStripStatusLabel1.Size = new Size(60, statusStrip1.Height);

            toolStripStatusLabel1.Text = "";

            //设置ToolStripProgressBar1最小值和最大值

            toolStripProgressBar1.Minimum  = 0;

            toolStripProgressBar1.Maximum = 1000;

        }

          //进度条增加,当完成后,在标签内显示状态

        private void button1_Click(object sender, EventArgs e)

        {

            for (int i = toolStripProgressBar1.Minimum; i <= toolStripProgressBar1.Maximum; i++)

                toolStripProgressBar1.Value = i;

            toolStripStatusLabel1.Text = "操作成功";

        }

        //增加工具栏下拉按钮

        private void button2_Click(object sender, EventArgs e)

        {

            //声明一个工具栏下拉按钮,设置图片和提示文字

            ToolStripDropDownButton tsddbText = new ToolStripDropDownButton();

            tsddbText.Image = Image.FromFile("c:\\lessons\\Text.png");

            tsddbText.ToolTipText = "设置状态栏文字";

            //声明一个菜单项,设置名称、图片和文字

            ToolStripMenuItem tsmiBold = new ToolStripMenuItem();

            tsmiBold.Name = "tsmiBold";

            tsmiBold.Image = Image.FromFile("c:\\lessons\\bold.png");

            tsmiBold.Text = "粗体";

            //声明一个菜单项,设置名称、图片和文字

            ToolStripMenuItem tsmiItalic = new ToolStripMenuItem();

            tsmiItalic.Name = "tsmiItalic";

            tsmiItalic.Image = Image.FromFile("c:\\lessons\\Italic.png");

            tsmiItalic.Text = "斜体";

            //将两个菜单项加入到工具栏下拉按钮

            tsddbText.DropDownItems.Add(tsmiBold);

            tsddbText.DropDownItems.Add(tsmiItalic);

            //将工具栏下拉按钮加入到窗体状态栏

            statusStrip1.Items.Add(tsddbText);

            //为两个菜单项添加事件

            tsmiBold.Click+= tsmiClick;

            tsmiItalic.Click+= tsmiClick;

        }

        //菜单项关联的事件

        private void tsmiClick(Object sender  , EventArgs e  )

        {

            ToolStripMenuItem tsmi = (ToolStripMenuItem)sender;

            Font lblFont;

            //根据菜单项的名称来判断具体是哪个菜单项

            switch( tsmi.Name)

            {

                case "tsmiBold":

                    //设置/取消粗体显示

                    if (toolStripStatusLabel1.Font.Bold == true)

                        lblFont = new Font(toolStripStatusLabel1.Font.FontFamily, toolStripStatusLabel1.Font.Size, FontStyle.Regular);

                    else

                        lblFont = new Font(toolStripStatusLabel1.Font.FontFamily, toolStripStatusLabel1.Font.Size, FontStyle.Bold);

                    toolStripStatusLabel1.Font = lblFont;

                    break;

                case "tsmiItalic":

                    //设置/取消斜体显示

                    if (toolStripStatusLabel1.Font.Italic == true)

                        lblFont = new Font(toolStripStatusLabel1.Font.FontFamily, toolStripStatusLabel1.Font.Size, FontStyle.Regular);

                    else

                        lblFont = new Font(toolStripStatusLabel1.Font.FontFamily, toolStripStatusLabel1.Font.Size, FontStyle.Italic);

                    toolStripStatusLabel1.Font = lblFont;

                    break;

                default:

                       break;

            }

        }

运行结果如下图所示:

图8-72 状态栏增加工具栏下拉按钮

学习更多vb.net知识,请参看vb.net 教程 目录

学习更多C#知识,请参看C#教程 目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.Net学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值