版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的
StatusStrip控件,通常情况下显示于窗体最底部,用于显示程序相关信息,例如记事本的状态栏显示了鼠标当前所在的行和列。在C#编辑器中添加了StatusStrip后,它也显示在窗体的底部。
StatusStrip的常用属性:
- ImageScalingSize:所用图像的大小(以像素为单位)。
- 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的按钮不会出现菜单项,只有单击旁边的下拉箭头才会弹出菜单项。
以上四种控件常用的属性:
- DisplayStyle:指定显示文本、图像的显示方式,包含以下值:
-
- Text:只显示文本。
- Image:只显示图像。
- ImageAndText:同时显示图像和文本。
- None:既显示图像,也不显示文本。
-
- ImageScaling:指示是否根据容器自动调整图像的大小,默认是SizeToFit(自动调整为适合大小),图像大小与StatusStrip的ImageScalingSize属性相同。
- TextDirection:文本的方向。当设置了StatusStrip的Dock属性为Right或是Left,可以选中ToolStripStatusLabel设置它的属性TextDirection为Vertical90或是Vertical270,使文本能够旋转90度或270度显示。
ToolStripStatusLabel独有的属性:
- 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#教程 目录