zoukankan      html  css  js  c++  java
  • Devexpress-xtraTabControl1

     
    /// <summary>
            /// 动态添加tabpage
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void ItemKuFangGuanLi_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
            {
                string name = e.Link.Caption;
                //判断是否已创建过
                foreach (XtraTabPage page in xtraTabControl1.TabPages)
                {
                    if (page.Text == name)
                    {
                        xtraTabControl1.SelectedTabPage = page;//显示该页
                        return;
                    }
                }
                //增加tabpage
                XtraTabPage xpage = new XtraTabPage();
                xpage.Name = name;
                xpage.Text = name;
                //向xtraTabControl1中添加窗体
                FrmKuFangGuanLi frm = new FrmKuFangGuanLi();
                frm.Visible = true;
                frm.Dock = DockStyle.Fill;
                frm.FormBorderStyle = FormBorderStyle.None;
                frm.TopLevel = false;//在这里一定要注意  负责是加载不出来的  
                xpage.Controls.Add(frm);//添加要增加的控件
                xtraTabControl1.TabPages.Add(xpage);
                xtraTabControl1.SelectedTabPage = xpage;//显示该页
            }
           public void OpenMdiFormToSuperTabControl(DevExpress.XtraTab.XtraTabControl NavTabControl, ModuleInfo mInfo)
           {
               string name = mInfo.CasesName;
               //判断是否已创建过
               foreach (DevExpress.XtraTab.XtraTabPage page in NavTabControl.TabPages)
               {
                   if (page.Text == name)
                   {
                       NavTabControl.SelectedTabPage = page;//显示该页
                       return;
                   }
               }
               //增加tabpage
               DevExpress.XtraTab.XtraTabPage xpage = new DevExpress.XtraTab.XtraTabPage();
               xpage.Name = name;
               xpage.Text = name;
               //向xtraTabControl1中添加窗体
               string assemblyPath = mInfo.Cases.Substring(0, mInfo.Cases.IndexOf(".dll"));
               System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFile(Path.GetDirectoryName(System.Windows.Forms.Application.ExecutablePath) + "\Plugin\"+assemblyPath + ".dll");
               // 获取类型
               string formClassName = mInfo.Cases.Substring(mInfo.Cases.IndexOf(".dll") + 5, mInfo.Cases.Length - (mInfo.Cases.IndexOf(".dll") + 5));
               Type type = Type.GetType(formClassName);
               var childForm = Activator.CreateInstance(type) as Form;
               childForm.Tag = mInfo.CasesName;  //tag属性要重新写一次,否则在第二次的时候取不到。原因还不清楚。有知道的望告知。
               childForm.Visible = true;
               childForm.Dock = DockStyle.Fill;
               childForm.FormBorderStyle = FormBorderStyle.None;
               childForm.TopLevel = false;//在这里一定要注意  负责是加载不出来的  
               xpage.Controls.Add(childForm);//添加要增加的控件
               NavTabControl.TabPages.Add(xpage);
               NavTabControl.SelectedTabPage = xpage;//显示该页
    
           }
    /// <summary>
            /// 移除tabpage
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void xtraTabControl1_CloseButtonClick(object sender, EventArgs e)
            {
                DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs eArg = (DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs)e;
                string name = eArg.Page.Text;//得到关闭的选项卡的text  
                foreach (XtraTabPage page in xtraTabControl1.TabPages)//遍历得到和关闭的选项卡一样的Text  
                {
                    if (page.Text == name)
                    {
                        xtraTabControl1.TabPages.Remove(page);
                        page.Dispose();
                        return;
                    }
                }
            }
            private void barButtonItemClose_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
            {
                if (this.Parent!=null)
                {
                    DevExpress.XtraTab.XtraTabControl tab = new DevExpress.XtraTab.XtraTabControl();
                    tab = (DevExpress.XtraTab.XtraTabControl)this.Parent.Parent;
                    DevExpress.XtraTab.XtraTabPage item = (DevExpress.XtraTab.XtraTabPage)this.Parent;
                    tab.TabPages.Remove(item);
                    item.Dispose();
                }
            }
  • 相关阅读:
    JAVA基础-抽象类和接口
    JAVA基础-多态
    JAVA基础-继承机制
    C++(二十七) — 深拷贝、浅拷贝、复制构造函数举例
    C++(二十六) — 构造函数、析构函数、对象数组、复制构造函数
    C++(二十五) — 类的封装、实现、设计
    C++(二十四) — 指向字符的指针为什么可以用字符串来初始化,而不是字符地址?
    C++(二十三) — 内存泄漏及指针悬挂
    C++(二十二) — 指针变量、函数指针、void指针
    C++(二十一) — 引用概念及本质
  • 原文地址:https://www.cnblogs.com/wangyinlon/p/10906727.html
Copyright © 2011-2022 走看看