动态添加XtraTabControl详细设置 DXperience学习笔记

来源:互联网 发布:工作牌制作软件 编辑:程序博客网 时间:2024/05/18 12:33
在使用DXperience开发winform过程中 也许你需要使用XtraTabControl代码动态添加XtraTabPage, 其实动态添加XtraTabPage  并不难 下面看下以下代码  基本实现了动态添加page功能 双击关闭Page的功能

以下是代码片段:


         /// <summary>
        /// 添加到Tab控件里
        /// </summary>
        /// <param name="Xuser">要添加的用户控件实例</param>
        /// <param name="name"> 控件唯一的 name 属性</param>
        /// <param name="caption">显示标题 caption</param>
        private void AaddUserControl(DevExpress.XtraEditors.XtraUserControl Xuser,string name, string caption)
         {
             try
             {
                 XtraTabPage page = new XtraTabPage();
                 page.Name = name;   //控件标示
                 page.Text = caption;  //显示标题
                 Xuser.Dock = System.Windows.Forms.DockStyle.Fill;  //dock属性 全屏撑大
                 page.Controls.Add(Xuser);
                 pagetab.TabPages.Add(page);
                 pagetab.SelectedTabPage = page;  //首页显示
             }
             catch (Exception ex)
             {
                  MessageBox.Show(ex.Message);
             }
        }

   遍历  XtraTabControl  中 打开的XtraTabPage 窗口  返回 指定name值的 序列号

以下是代码片段:


        /// <summary>
        /// 遍历打开的窗口
        /// </summary>
        /// <param name="value">name值</param>
        /// <returns></returns>
        public int GetTabName(string value)
        {
            int count = -1;
            for (int i = 0; i < XtraTabControl1.TabPages.Count; i++)
            {
                if (XtraTabControl1.TabPages[i].Name == value)
                {
                    return i;
                }
            }
            return count;
        }

设置  XtraTabControl 的显示首页;


  int i = GetTabName(pagename);  //查询Tab控件中是否有此 name属性  上面的函数查找
  if (i != -1)
     {
        XtraTabControl1.SelectedTabPageIndex = i;
     }


双击关闭页面功能  点击xtraTabControl1控件 切换到事件窗口 添加DoubleClick事件  代码如下

以下是代码片段:


         /// <summary>
        /// tab控件表头双击事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>

        private void xtraTabControl1_DoubleClick(object sender, System.EventArgs e)
        {
            if (CurrentPage != null)
            {
                CurrentPage.Dispose();
            }
        }