因项目需要要实现类似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 = ;
_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[]["AssemblyName"].ToString() + ".dll"; Assembly _assembly = Assembly.LoadFrom(pathDll);
//定义一个"类型信息"的对象.
Type t = _assembly.GetType(dtFrmName.Rows[]["FormName"].ToString(), false, true);//就是这里,我获取了dll的窗体名称
ConstructorInfo cont = t.GetConstructor(new Type[]);
XtraForm xf = (XtraForm)cont.Invoke(new object[]); //拖动xtraTabbedManager到窗体中,在属性中将MdiParent设置成(无)...
xtraTabbedMdiManager1.MdiParent = this; //设置控件的父表单..
xf.MdiParent = this; //设置新建窗体的父表单为当前活动窗口
xf.Show(); //以非模式窗口方式打开
xtraTabbedMdiManager1.SelectedPage = xtraTabbedMdiManager1.Pages[xf]; //使得标签的选择为当前新建的窗口
this.xtraTabbedMdiManager1.ClosePageButtonShowMode = DevExpress.XtraTab.ClosePageButtonShowMode.InAllTabPagesAndTabControlHeader; //设置标签后面添加删除按钮 , 多个标签只需要设置一次..
}

效果如下:

DevExpress--xtraTabbedMdiManager控件的更多相关文章

  1. 使用DevExpress.XtraTabbedMdi.XtraTabbedMdiManager控件来加载MDI窗体

    使用DevExpress.XtraTabbedMdi.XtraTabbedMdiManager控件来加载MDI窗体     [csharp] view plaincopyprint? <SPAN ...

  2. Devexpress TreeList控件绑定显示父子节点对像

    今天一位同事咨询Devexpress TreeList控件绑定自动显示父子节点对像,但结果是不会显示带父子节点关系,而是将所有的节点作为父节点显示出来了,对像类的代码如下 public class I ...

  3. DevExpress 用户控件 分页(上)

    说明:使用用户控件分页,完成后,使用时非常简单,数据绑定,调用自己写的一个事件就OK了 前期准备工作: (1)添加一个用户控件 命名PageCtrl (2)打开代码:   [csharp] view ...

  4. DevExpress 用户控件 分页(中)

    说明: 1)具体调用请关注 看DevExpress 用户控件 分页(下) datanavi_ButtonClick 是DataNavigator的ButtonClikc事件 视图设计器: 分页用户控件 ...

  5. DevExpress.LookUpEdit控件实现自动搜索定位功能 兼使用方法(looUpEdit可编辑)

    DevExpress.LookUpEdit 使用方法 设置可手动输入 this.LookUpEdit1.Properties.TextEditStyle = DevExpress.XtraEditor ...

  6. devexpress表格控件gridcontrol图片列,按钮列,时间列等特殊列的实现

    1.项目中经常会在表格中插入按钮列,图片列,表格列一些非文本的特殊列.如何在devexpress表格控件gridcontrol中实现呢?以下列举一个实现添加图片列,按钮列,时间列,按钮列,开关列的示例 ...

  7. 详解DevExpress.LookUpEdit控件实现自动搜索定位功能(转)

    转载自csdn博客 爱拼才会赢 的博客 地址是详解DevExpress.LookUpEdit控件实现自动搜索定位功能(转)

  8. DevExpress WPF控件记录

    以下是博主用到DevExpress WPF控件时的一些记录笔记: 1.Canvas控件:Canvas控件的背景色一定要设置(background="Transparent"),不然 ...

  9. DevExpress 使用 XtraTabbedMdiManager 控件以 Tab样式加载 Mdi窗体并合并 RibbonControl 解决方案

    最近刚接触到 DevExpress 13.1 这个皮肤组件, 觉得相当好用 于是开始准备搭建 个小应用的主体框架. 找了好久的就是没找到对应的文章来讲解这一块.. 翻了他们主网站上人家问的,以及API ...

  10. DevExpress某些控件继承后的可编辑性

    今天在使用DevExpress的BarManager菜单控件时,发现在进行继承时无法在继承的子类窗体中对其进行编辑与修改,另外像GridView也有类似的情形,后来查阅资料后,现在可通过DevExpr ...

随机推荐

  1. Java-输入输出流

    JAVA-输入输出流 1.输入输出: 输入/输出(Input/Output)是指对某个设备或环境进行数据的输入或输出.任何语言都有输入输出的功能,在Java程序中,是通过流来完成输入和输出的,它通过J ...

  2. C#获得类的方法和方法参数

    Type t = typeof(CommonController); StringBuilder str = new StringBuilder(); MethodInfo[] methors = t ...

  3. requirejs加载css样式表

    1. 在 https://github.com/guybedford/require-css 下载到require-css包 2. 把css.js或者css.min.js复制到项目的js目录下 3. ...

  4. sql连表分页查询(存储过程)

    1.平时分页查询都比较多针对一个表的数据 而这个分页查询是针对连表查询的 ,这也是我网上改版别人的sql语句 先在数据库新建一个存储过程 拷贝以下代码 CREATE PROCEDURE [dbo].[ ...

  5. Linux从程序到进程

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在高级语言中,这些内存管理的细节对于用户来说不透明.在编程的时候,我们只需要记住上 ...

  6. JFinal 国际化

    要支持国际化,需要在容器初始化的时候配置一个处理国际化的全局拦截器.比如可以使用 com.jfinal.i18n.I18nInterceptor 配置拦截器: public class MppConf ...

  7. CPU过高的排查方法

    一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环. (友情提示:本博文章欢迎转载,但请注明出处:hankchen,http://www.blogjava.net/hank ...

  8. 隐藏原生html5 video controls

    隐藏原生html5 video controls 凤凰视频焦点项目mobile html5播放器测试时bug,由于没有用原生的controls而是自己写的custom controls,虽然设置了co ...

  9. Google C++ Style Guide

    Background C++ is one of the main development languages used by many of Google's open-source project ...

  10. DNS域名解析服务器

    域名解析服务器,靠它把你要访问的网址找到然后把信息送到你电脑上.DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主 ...