DevExpress中使用DocumentManager,并确保不重复
https://www.devexpress.com/Support/Center/Question/Details/Q411356

void ActivatForm(Type someType)
{
foreach (var item in tabbedView1.Documents)
{
if (item.Control.GetType() == someType)
{
tabbedView1.Controller.Activate(item);
return;
}
}
var instance = Activator.CreateInstance(someType);
tabbedView1.AddDocument(instance as Control);
} private void navBarItem1_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
ActivatForm(typeof(XtraForm1));
} private void navBarItem2_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
ActivatForm(typeof(XtraForm2));
} private void navBarItem3_LinkClicked(object sender, DevExpress.XtraNavBar.NavBarLinkEventArgs e)
{
ActivatForm(typeof(XtraForm3));
}
在主窗体Load的时候,获取所有继承自XtraForm的类型
private Dictionary<string, Type> GetAllXtraForm()
{
Assembly assembly = Assembly.GetExecutingAssembly();
var list = assembly.GetTypes().Where(typeof(XtraForm).IsAssignableFrom).ToList();
var dic = new Dictionary<string, Type>();
foreach (var item in list)
{
dic.Add(item.ToString(), item);
}
return dic;
}
通说navBarControl上的单击事件,打开窗体
private void ActivatForm(string name)
{
var className = name.Replace("navBarItem",string.Empty);
Type someType = xtraForms.FirstOrDefault(x => x.Key.Contains(className)).Value;
if (someType == null)
{
throw new Exception($@"无法识别的类型{className}");
}
var baseDocument = tabbedView1.Documents.FirstOrDefault(x => x.Control.GetType() == someType);
if (baseDocument == null)
{
var instance = Activator.CreateInstance(someType);
var control = instance as Control;
if (control == null)
{
throw new Exception($@"无法将{instance.GetType()}转换为{typeof(Control)}");
}
tabbedView1.AddDocument(control);
tabbedView1.ActivateDocument(control);
}
else
{
tabbedView1.Controller.Activate(baseDocument);
}
}
DevExpress中使用DocumentManager,并确保不重复的更多相关文章
- devexpress中gridview控件编辑时改变输入法状态
在win7环境下使用Devexpress中的SpinEdit控件,切换成中文[简/繁]输入法输入数字键时有不少输入法会重复产生数字如输入1会变成11,输入123会变成112233.使用SpinEdit ...
- [转]''\\=DevExpress 中 汉化包 汉化方法
[DevExpress]DevExpress 中 汉化包 汉化方法 2016-02-17 21:13 1781人阅读 评论(0) 收藏 举报 分类: DevExpress(24) 版权声明:本文为 ...
- DevExpress 中 在做全选的全消功能的时候 加快效率
在做 DevExpress 中对增加的选择 Check列 控制全选的全消时通过以下代码红色字代码效率会有明显的提升: private void CheckedRow() { try { splashS ...
- php中如何防止表单的重复提交
在php中如何防止表单的重复提交?其实也有几种解决方法. 下面小编就为大家介绍一下吧.需要的朋友可以过来参考下 代码: <?php /* * php中如何防止表单的重复提交 * by www.j ...
- devexpress中gridcontrol头部添加垂直线(右边框)
winform开发,用devexpress中的gridcontrol控件,头部默认是3D样式,当客户希望像内容一样扁平化显示且需要添加垂直线(右边框)时恶梦开始了..经过一阵摸索发现可以这样解决: 1 ...
- 从数组中随机取n条不重复的数据
工作中经常遇到有关数组的一些操作 1. 从数据中随机取n条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环) /* 1 从数组arr中随机取n条不重复的数据 ...
- DevExpress中,添加Winform窗体到DockPanel z
DevExpress中,添加Winform窗体到DockPanel // 在使用DevExpress过程中,原先已经创建好的导航窗体,如何添加到DockPanel中进行展示? FormX frmX = ...
- 使用Devexpress中的CharControl控件,需要控制AxisY轴的显示范围,需要使用该控件的BoundDataChanged事件
一.控制ChartControl的Y轴范围 使用Devexpress中的CharControl控件,需要控制AxisY轴的显示范围,需要使用该控件的BoundDataChanged事件,具体代码如下: ...
- DevExpress中GridView Excel下载
DevExpress中GridView提供了许多Excel下载的方法,如gridView.ExportToExcelOld(sfdExcelDown.FileName); 在修改Bug时,遇到这样问题 ...
随机推荐
- 《zw版·Halcon-delphi系列原创教程》cgal与opencv,Halcon
<zw版·Halcon-delphi系列原创教程>cgal与opencv,Halcon opencv作为少有的专业开源图像软件,虽然功能,特别是几何计算方面,不如Halcon,不过因为开源 ...
- Jar mismatch! Fix your dependencies
在开发Android项目的时候,有时需要引用多个项目作为library.在引用项目的时候,有时会出现“Jar mismatch! Fix your dependencies”错误. 这是因为两个项目的 ...
- Sql Server Analysis Service 处理时找到重复的属性键、找不到属性键错误(转载)
这是两个非常常见的SSAS处理异常,网上也能找到很多文章讲解决办法,但很少见关于异常原因的分析,先来看看第一个" OLAP 存储引擎中存在错误: 处理时找到重复的属性键",一个维度 ...
- 关于 屏幕阅读器 和 sr-only
.sr-only = screen reader only 用于读屏器识别使用.
- Hadoop实战3:MapReduce编程-WordCount统计单词个数-eclipse-java-ubuntu环境
之前习惯用hadoop streaming环境编写python程序,下面总结编辑java的eclipse环境配置总结,及一个WordCount例子运行. 一 下载eclipse安装包及hadoop插件 ...
- python DB.fetchall()--获取数据库所有记录列表
查询到的数据格式为列表: 多个元素的列表:
- windows cmd color setup
设置颜色的话,一般可定会有foreground和background color设置:(其实color /?直接看一下就好了) Color Background Foreground Black 0 ...
- #import vs. @class
You #import or #include when there is a physical dependency. Otherwise, you use forward declarations ...
- Spring的beans标签下可以有其他标签
以前有对xsd(也就是schema文件)小做研究,有个小困惑,就是我们定义的元素只能使用定义的哪一些标签,比如<beans>下面就只能有自定义的哪一些,那为什么在引入<context ...
- ectouch第十一讲 之 ECTouch 菜单里如何添加文章链接
1.首先在 ectouch 后台添加好文章分类和文章内容(具体添加方法很简单,这里就不再赘述),然后在菜单管理里添加导航如下(链接地址的获取方法参考步骤 2):2.文章分类列表 域名/mobile/i ...