DevExpress--xtraTabbedMdiManager控件


因項目需要要實現類似jquery的Tab效果,所以要用到xtraTabbedMdiManager控件

使用xtraTabbedMdiManager一般配合navBarControl(上期已寫過)

 

在工具箱xtraTabbedMdiManager拖到界面,在屬性中將MdiParent設置成(無)

 

大概代碼:

xtraTabbedMdiManager1.MdiParent = this;   //設置控件的父表單..
XtraForm1 frm = new XtraForm1();    //定義一個form1窗體
frm.MdiParent = this;    //設置新建窗體的父表單為當前活動窗口
xtraTabbedMdiManager1.SelectedPage = xtraTabbedMdiManager1.Pages[frm];    //使得標簽的選擇為當前新建的窗口
this.xtraTabbedMdiManager1.ClosePageButtonShowMode = DevExpress.XtraTab.ClosePageButtonShowMode.InAllTabPagesAndTabControlHeader;    //設置標簽后面添加刪除按鈕 ,  多個標簽只需要設置一次..

 

具體代碼:

首先增加navBarControl控件

this.navBarControl1.Groups.Clear();
 string strFrmName = "select top 10 ModuleCode,ModuleName,AssemblyName,FormName  from [000].tbModule where AssemblyName='KidsServer'";
 DataTable dtFrmName = DBHelper.SQLDBHelper.GetDataTable(strFrmName, DBHelper.SQLDBHelper.conStringHQ);

 NavBarGroup _navBarGroup = new NavBarGroup();
 _navBarGroup.Name = "_navBarGroup";
 _navBarGroup.Caption = "財務管理";

foreach (DataRow dr in dtFrmName.Rows)
{
  NavBarItem _navBarItem = new NavBarItem();
   _navBarItem.Name = dr["ModuleCode"].ToString();
   _navBarItem.Caption = dr["ModuleName"].ToString();
   string strFilePath = System.IO.Directory.GetCurrentDirectory() + @"\images\add.png";
   // _navBarItem.LargeImage = Image.FromFile(strFilePath);//這里一直無法顯示圖片,不知道是不是我寫錯了還是什么
   _navBarItem.LargeImageIndex = 0;
   _navBarItem.LinkClicked += new NavBarLinkEventHandler(_navBarItem_LinkClicked);
   _navBarGroup.ItemLinks.Add(_navBarItem);
 }
 navBarControl1.Groups.Add(_navBarGroup);
 _navBarGroup.Expanded = true;

 

NavBarItem事件(實現xtraTabbedMdiManager控件效果):

 void _navBarItem_LinkClicked(object sender, NavBarLinkEventArgs e)
        {
            NavBarItem _navBarItem = (NavBarItem)sender;
            string strFrmName = string.Format("select ModuleCode,ModuleName,AssemblyName,FormName  from [000].tbModule where ModuleCode = '{0}'", _navBarItem.Name);
            DataTable dtFrmName = DBHelper.SQLDBHelper.GetDataTable(strFrmName, DBHelper.SQLDBHelper.conStringHQ);
            string pathDll = Application.StartupPath + @"\" + dtFrmName.Rows[0]["AssemblyName"].ToString() + ".dll";

            Assembly _assembly = Assembly.LoadFrom(pathDll);
            //定義一個"類型信息"的對象.
            Type t = _assembly.GetType(dtFrmName.Rows[0]["FormName"].ToString(), false, true);//就是這里,我獲取了dll的窗體名稱
            ConstructorInfo cont = t.GetConstructor(new Type[0]);
            XtraForm xf = (XtraForm)cont.Invoke(new object[0]);

            //拖動xtraTabbedManager到窗體中,在屬性中將MdiParent設置成(無)...
            xtraTabbedMdiManager1.MdiParent = this;   //設置控件的父表單..
            xf.MdiParent = this;    //設置新建窗體的父表單為當前活動窗口
            xf.Show();    //以非模式窗口方式打開
            xtraTabbedMdiManager1.SelectedPage = xtraTabbedMdiManager1.Pages[xf];    //使得標簽的選擇為當前新建的窗口
            this.xtraTabbedMdiManager1.ClosePageButtonShowMode = DevExpress.XtraTab.ClosePageButtonShowMode.InAllTabPagesAndTabControlHeader;    //設置標簽后面添加刪除按鈕 ,  多個標簽只需要設置一次..
        }

 

效果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM