xtraTabControl通常使用

1、设置标签页上显示关闭按钮ClosePageButtonShowMode选项选择InActiveTabPageHeaderAndOnMouseHover

将tabPage删减至一个,命名为xtp1,Text为“编辑1”,增加一个xtpADD,text为“+”

2、添加一个标签页面

        private void button_Click(object sender, EventArgs e)
        {//xtraTabControl1增加一个页面
            XtraTabPage page = new XtraTabPage();
            int NextNumber= GetNewPageName(xtraTabControl1);
            if (NextNumber > 100)
            {
                MessageBox.Show("不支持再多的标签页");
                return;
            }
            page.Name = "xtp" + NextNumber.ToString();
            page.Text = "查询" + NextNumber.ToString();
            this.xtraTabControl1.TabPages.Add(page);
            this.xtraTabControl1.SelectedTabPage = page;
        }
private int GetNewPageName(XtraTabControl xtc)
        {
            var test = xtc.TabPages;
            List<int> list= xtc.TabPages.Where(x => x.Text.StartsWith("查询")).ToList().Select(y =>int.Parse(y.Text.Replace("查询",""))).ToList();
            int result = list.Max();//如果执行的顺利,则找到最大的值,如果执行不顺利则result依旧是0
            return result + 1;
        }

3、关闭标签

private void xtraTabControl1_CloseButtonClick(object sender, EventArgs e)
        {
            ClosePageButtonEventArgs arg = e as ClosePageButtonEventArgs;
            if (xtraTabControl1.TabPages.Count > 1)
            {
                if (DialogResult.Yes == MessageBox.Show("确认需要关闭当前查询?", "再次确认", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1))
                {
                    //如果关掉的是当前界面 选中前一个界面    如果关掉的不是当前界面 则选中的内容不变。
                    if (xtraTabControl1.SelectedTabPage.Equals(arg.Page as XtraTabPage))
                        xtraTabControl1.SelectedTabPageIndex = xtraTabControl1.SelectedTabPageIndex >= 1 ? xtraTabControl1.SelectedTabPageIndex - 1 : 0;

                    xtraTabControl1.TabPages.Remove(arg.Page as XtraTabPage); //方法1 删除
                    //(arg.Page as XtraTabPage).PageVisible = false;//方法2 隐藏
                }
            }
        
                
        }

==================================================

以上的方法已经能够满足通常的需要,但是还是需要一个【增加Tab页】的按钮,如果能将这个按钮藏起来,就会好看很多。

于是我在标签列表的最右边,能够创建一个tab头为【+】的tab页,这一页永远不会被打开,相当于在这个tab头上增加了这么个按钮。

在页面的引导性上用户也很容易理解,如下图:

那么只要修改其中部分内容即可。

置标签页上显示关闭按钮ClosePageButtonShowMode选项选择   InActiveTabPageHeader

修改xtraTabControl1的SelectedPageChanged事件

        private void xtraTabControl1_SelectedPageChanged(object sender, TabPageChangedEventArgs e)
        {
            if (xtraTabControl1.SelectedTabPage.Name == "xtpADD")
            {
                //添加插入一个页,然后选择新插入的这个页
                XtraTabPage page = new XtraTabPage();
                int NextNumber = GetNewPageName(xtraTabControl1);
                if (xtraTabControl1.TabPages.Count >3)
                {
                    MessageBox.Show("不支持再多的标签页");
                    this.xtraTabControl1.SelectedTabPageIndex = xtraTabControl1.TabPages.Count - 2;
                    return;
                }
                page.Name = "xtp" + NextNumber.ToString();
                page.Text = "查询" + NextNumber.ToString();

                //先删除最后的【+】页,插入所需的页面后,再把【+】页添加进来
                XtraTabPage lastPage=this.xtraTabControl1.TabPages.Last();
                this.xtraTabControl1.TabPages.Remove(lastPage);
                this.xtraTabControl1.TabPages.Add(page);
                this.xtraTabControl1.SelectedTabPage = page;
                this.xtraTabControl1.TabPages.Add(lastPage);
            }
        }
原文地址:https://www.cnblogs.com/adamgq/p/12517639.html