因项目需要要实现类似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. C 语言

    1, //         char server[] = BaseNetServerIp; //        string  serverStr = _aliNetServerEnabled?Ne ...

  2. jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后

    代码如下: setFocus=function(id){ var t=$("#"+id).val(); $("#"+id).val(""). ...

  3. DataTables 自定义

    自定义取的参数方法 getQueryCondition = function(data) { var param = {}; ]) { param.order =data.columns[data.o ...

  4. Nginx基础知识之————RTMP模块专题(实践文档)

    on_publish 语法:on_publish url上下文:rtmp, server, application描述:这个可以设置为一个API接口(GET方式接受所有参数),会给这个API接口返回8 ...

  5. HTML基本标签

    h1-h6:标题标签.(从大到小) p:段落标签. img:图片标签:属性src:图片的相对路径:alt:图片加载失败的提示语言. a:超链接标签:属性:href:地址链接:target:网页打开的默 ...

  6. 转:ProgressMonitorDialog

    http://stackoverflow.com/questions/12986912/using-progressmonitordialog-in-eclipse-4-properly public ...

  7. jQuery 移动端ajax请求列表数据,实现点击翻页效果(还有手势往下滑动翻页)。

    1 首先是html部分 <div class="content"> <div class="list"></div>  // ...

  8. Handler+ExecutorService(线程池)+MessageQueue模式+缓存模式

    android线程池的理解,晚上在家无事 预习了一下android异步加载的例子,也学习到了一个很重要的东东 那就是线程池+缓存  下面看他们的理解.[size=1.8em]Handler+Runna ...

  9. TableView与delegate、dataResource

    小梦这几天学习tableView是深有体会了 废话不多说,来一波 首先,创建一个测试项目 如图 创建好,在项目结构中另外弄一个GroupFile,创建storyBoard和CocoaTouch 在st ...

  10. js组合继承和寄生组合式继承比较

    本文是原创文章,如需转载,请注明文章出处 1.js中实现组合继承(B继承A): function A(name){ this.name = name; this.ary = ["AA&quo ...