8.3.5 ToolStripContainer(工具栏容器)控件
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的
ToolStripContainer控件是一个容器,可以包含菜单和工具条、状态栏。
在设计窗体中放入一个ToolStripContainer:
图8-77 添加ToolStripContainer到窗体
通常情况下,设置ToolStripContainer填充满窗体界面,请单击“在窗体中停靠填充”,或者在【属性】窗口中设置Dock=Fill。
图8-78 使ToolStripContainer填充窗体
通过点击四个“^”箭头符号,可以看到展开了上下左右4个部分,将ToolStripContainer分为了五个面板:
图8-79 ToolStripContainer的五个区域
这五个面板为:TopToolStipPanel、BottomToolStipPanel、LeftToolStipPanel、RightToolStipPanel、ContentPanel,分别对应界面上的上、下、左、右、中间这五个面板。其中四个ToolStipPanel是ToolStipPanel类型,用于放置菜单、工具条、状态栏。ContentPanel是ToolStripContentPanel类,用于放置其它控件。
相应地,从ToolStripContainer1的【属性】窗口中可以看到,包含TopToolStripPanel、BottomToolStripPanel、LeftToolStripPanel、RightToolStripPanel、ContentPanel等,而且前面有个+号,可以点击展开获得或设置相应的属性。也可以在设计窗体上单击某个区域,既可显示对应项的【属性】窗口。
由于设置了ToolStripContainer的Dock属性为Fill,要想通过设计窗体选中ToolStripContainer并修改它的属性比较困难,因为单击窗体上任一位置都返回上述五个区域而不是ToolStripContainer本身。此时,可以先选择它上面的任一个面板,再从属性窗口中选择ToolStripContainer即可:
图8-80 通过【属性】窗口选择ToolStripContainer
【例 8.50】【项目:code8-050】使用ToolStripContainer控件。
下面以TopToolStrpPanel为例讲述如何使用ToolStripContainer。仅展开TopToolStripPanel面板,在TopToolStripPanel面板上单击选中此面板(右侧变为TopToolStripPanel的【属性】窗口),再双击工具栏的ToolStrip控件,即可向TopToolStripPanel中插入一个ToolStrip:
图8-81 将工具栏添加到TopToolStripPanel面板
将光标放在TopToolStripPanel 面板的“^”箭头符号上面,此时光标会变成手型鼠标指针,单击后面板向下扩展,此时可以放置更多的工具栏:
图8-82 TopToolStripPanel面板上放置2个工具栏
此时运行代码,当光标放在这两个工具栏前端时会变为十字箭头,按下鼠标左键后可以拖放工具栏改变位置:
图8-83 工具栏可以拖放到窗体四周任意位置
如果需要禁止工具栏被拖放在某个面板,只需要在ToolStripContainer【属性】窗口中设置那个面板的ToolStripPanelVisible为False即可。例如设置LeftToolStipPanel不可用,需要设置LeftToolStripPanelVisible为False。
最后在现有两个工具栏基础上用代码再添加一个工具栏:
private void Form1_Load(object sender, EventArgs e)
{
//使底部面板可见,可以拖放工具栏放置在上面
toolStripContainer1.BottomToolStripPanelVisible = true;
//建立一个工具栏
ToolStrip newToolStrip =new ToolStrip();
//新建一个工具栏标签
ToolStripLabel tsl =new ToolStripLabel();
tsl.Text = "这是工具条3";
tsl.DisplayStyle = ToolStripItemDisplayStyle.Text;
//工具栏标签加入工具栏上
newToolStrip.Items.Add(tsl);
//建立一个工具栏按钮
ToolStripButton tsb =new ToolStripButton();
tsb.Image = Image.FromFile("c:\\lessons\\Text.png");
//工具栏按钮加入工具栏上
newToolStrip.Items.Add(tsb);
//工具栏加入到底部面板
toolStripContainer1.BottomToolStripPanel.Controls.Add(newToolStrip);
//工具栏按钮关联Click事件
tsb.Click+= newButton_Click;
}
private void newButton_Click(object sender, EventArgs e)
{
MessageBox.Show("按下了新的按钮");
}
运行结果如下图所示:
图8-84 新加入的工具栏及其工具栏按钮事件
学习更多vb.net知识,请参看vb.net 教程 目录
学习更多C#知识,请参看C#教程 目录