TabPage的动态添加

在作这个的时候找到了一个第三方控件来制做。ide

DOTNETBAR.this

使用其中的TabControl控件,主要属性以下:code

TabItem:添加一个新的标签。blog

TabControlPanel:添加标签的主体容器。接口

TabControlPanel.Controls.Add(控件)事件,向容器中添加组件。事件

tabItem.AttachedControl = panel 将容器添加到对应的标签上。it

可是后来发现第三方控件仍是不如本身写。class

由于我发现一个很大的问题:第三方控件添加双击关闭标签事件的时候没有相应的接口,而.NET自带的TabControl却很方便。容器

//双击删除标签
private void tabControl1_MouseDoubleClick(object sender, MouseEventArgs e)
{
    TabControl tab = (TabControl)sender;
    Point pt = new Point(e.X,e.Y);
    if (tab.TabPages.Count > 1)
    {
        for (int i = 0; i < tab.TabPages.Count; i++)
        {
            Rectangle recTab = tab.GetTabRect(i);
            if (recTab.Contains(pt))
            {
                TabPage seltab = this.tabControl1.SelectedTab;
                int seltabindex = this.tabControl1.SelectedIndex; object

                tab.TabPages.Remove(seltab);
                tab.SelectedIndex = seltabindex - 1;

                return;
            }

        }
    }
}

----------------------其余----------------------

如何在.NET中调用记事本或者计算器:(引用命名空间:using System.Diagnostics;)

process.start("notepad.exe"); process.start("calc.exe");