效果图:
使用起来还比较简单,关键点说明:
1)在主窗口客户区放置一个DockPanel,设置如下事件:
// TAB切换时会触发的事件,在这里切换主窗口公用工具栏和状态条:
dockPanel.ActiveDocumentChanged += new EventHandler(dockPanel_ActiveDocumentChanged);
2)每个TAB标签实际上是一个Form,从 DockContent 派生(DockContent实际上从Form派生)
public partial class IETabForm : Form
{
}
3)添加一个页签
private IETabForm AddNewTab(DockPane pane)
{
IETabForm page = new IETabForm();
page.DockAreas = DockAreas.Document;//限制只能停靠在主窗口中间的文档区
if (pane == null || pane.Contents.Count < 1)
{
InitPane(pane, page);
}
else
{
page.Show(pane, GetBlankTab(pane));
}
return page;
}
private void InitPane(DockPane pane, IETabForm page)
{
if (pane == null)
{
page.Show(dockPanel);
pane = dockPanel.ActiveDocumentPane;
}
else
{
page.Show(pane, null);
}
AddBlankPage(pane); // 添加一个空白页签在最右侧(用于打开新页签)
}
其中DockPane表示一个停靠窗格,类似于 VS2005 如下两个Pane: