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时,遇到这样问题 ...
随机推荐
- ubuntu支持shh远程连接记录
打开终端输入sudo apt-get update更新软件库 在输入sudo apt-get install openssh-server下载ssh sudo /etc/init.d/ssh rest ...
- DELPHI出现无法加载dclite50.bpl的解决办法(转)
现象: Borland Integrated Translation Environment 加载出错 解决办法: 我的电脑--->(鼠标右键)属性--->高级--->(性能)设置- ...
- xx
[git]merge和rebase的区别 - 削微寒 - 博客园 http://www.cnblogs.com/vamei/p/3480994.html 协议森林16 小美的桌号(DHCP协议) - ...
- stc89c52开发板遥控器解码 红外线发射 内置 eeprom 存储 串口显示编码
单片机,大概三年前,就买了一本 <爱上单片机> 最后就学会,用面包板了,编程书上基本没讲. 看原理图,看时序图,看数据手册, 都没讲. 而且书上自带的代码写的很烂. 1,缩近控制不好 2, ...
- linux配置java环境变量(详细)【转】
转自:http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html 一. 解压安装jdk 在shell终端下进入jdk-6u14-linux ...
- flex 加载arcgis 的地图json
var fs:FeatureSet=FeatureSet.fromJSON(JSONUtil.decode(e.result.toString())); for each(var gra:Graphi ...
- MongoDB C# / .NET Driver
MongoDB C# Driver是官方提供的.NET C#驱动. Getting Started with the C# Driver C# Driver Tutorial C# Driver LI ...
- test if DEMO
可参考:http://blog.chinaunix.net/uid-20671208-id-3643362.html 1.test 举例: test -d ~/auto && echo ...
- 利用OpenStack Rest API 创建镜像
服务端点: image API: POST /v2/images Request1: Method:Post Url: http://192.168.31.147:9292/v ...
- 七牛开发文档php
http://developer.qiniu.com/docs/v6/sdk/php-sdk.html#overview http://developer.qiniu.com/docs/v6/sdk/ ...