动态添加XtraTabControl的page页和子窗体
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DevExpress.XtraTab; namespace ZL.BidMain.FormBuild
{
public class CreateForm
{ private static Dictionary<string, XtraTabPage> TabPageDic = new Dictionary<string, XtraTabPage>(); private static CreateForm form = null;
private CreateForm(){} static CreateForm()
{
form = new CreateForm();
}
public static CreateForm FormOper
{
get
{
return form;
}
} /// <summary>
/// 新增选项卡页
/// </summary>
/// <param name="tabControl">选项卡控件</param>
/// <param name="tabPageName">当期选项卡页name名称</param>
/// <param name="tabText">当前选项卡页Text标题</param>
/// <param name="newFormName">当前选项卡中的新窗体</param>
public void AddTabpage(XtraTabControl tabControl, string tabPageName, string tabText, string newFormName)
{
if (IsTabpageExsit(tabControl, tabPageName))
{
return;
}
XtraTabPage newPage = new XtraTabPage();
newPage.Name = tabPageName;
newPage.Text = tabText;
newPage.Tooltip = tabPageName;
newPage.Controls.Add(AddNewForm(newFormName));
tabControl.TabPages.Add(newPage);
TabPageDic.Add(tabPageName, newPage);
tabControl.SelectedTabPage = newPage;
} /// <summary>
/// 移除选项卡页
/// </summary>
/// <param name="tabControl"></param>
/// <param name="tabPageName"></param>
/// <param name="e"></param>
public void RemoveTabPage(XtraTabControl tabControl,EventArgs e)
{
DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs args = (DevExpress.XtraTab.ViewInfo.ClosePageButtonEventArgs)e;
string name = args.Page.Tooltip;
foreach (XtraTabPage item in tabControl.TabPages)
{
if (item.Name==name)
{
tabControl.TabPages.Remove(item);
item.Dispose();
TabPageDic.Remove(name);
return;
}
}
} /// <summary>
/// 判断选项卡是否已经存在
/// </summary>
/// <param name="tabControl">选项卡控件</param>
/// <param name="tabPageName">选项卡名称</param>
/// <returns></returns>
private bool IsTabpageExsit(XtraTabControl tabControl,string tabPageName)
{
foreach (var item in TabPageDic)
{
if (item.Key== tabPageName)
{
tabControl.SelectedTabPage = item.Value;
return true;
}
}
return false;
} /// <summary>
/// 在选项卡中生成窗体
/// </summary>
/// <param name="form">窗体名称</param>
private Form AddNewForm(string formName)
{
Form newForm = (Form)Assembly.GetExecutingAssembly().CreateInstance(formName);
newForm.FormBorderStyle = FormBorderStyle.None;
newForm.TopLevel = false;
//newForm.Parent = ((XtraTabControl)sender).SelectedTabPage;
newForm.ControlBox = false;
newForm.Dock = DockStyle.Fill;
newForm.Visible = true;
return newForm;
}
}
}
动态添加XtraTabControl的page页和子窗体的更多相关文章
- jquery-ui-bootstrap动态添加和删除标签页封装【效果更炫】
1.效果图 2.导入js和css <link rel="stylesheet" href="css/bootstrap/css/bootstrap.min.css& ...
- JQuery动态添加多个tab页标签
jQuery是一个兼容多浏览器的js库,核心理念是write less,do more(写的更少,做的更多),jQuery使用户能更方便地处理HTML documents.events.实现动画效果, ...
- EasyUI创建异步树形菜单和动态添加标签页tab
创建异步树形菜单 创建树形菜单的ul标签 <ul class="easyui-tree" id="treeMenu"> </ul> 写j ...
- 动态添加子视图 UIView 的正确方法
很多时候哥比较喜欢用代码添加视图,特别是要同时加很多UIView时,而且跟 xib 比起来代码更容易管理,在多人的项目中代码不容易 conflict. 但小牛哥最近发现很多新人都不太清楚正确的使用方法 ...
- [转] JQuery UI Tabs 动态添加页签,并跳转到新页签
[From] https://blog.csdn.net/zhangfeng2124/article/details/76672403 需求: 1.tabs默认只有一个页签,但是需要点击某按钮,动态添 ...
- 【iOS开发】动态添加子视图 UIView 的正确方法
很多时候哥比较喜欢用代码添加视图,特别是要同时加很多UIView时,而且跟 xib 比起来代码更容易管理,在多人的项目中代码不容易 conflict. 但小牛哥最近发现很多新人都不太清楚正确的使用方法 ...
- ContextMenuStrip 动态添加多级子菜单
1.首先要实例化几个ToolStripItem(要为某一父菜单添加几个子菜单就实例化几个):方法如下: /*添加子菜单*/ ToolStripItem ts_1 = new ToolStripMenu ...
- ES6面向对象 动态添加标签页
HTML <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml&quo ...
- C#主菜单动态添加子菜单并设置触发事件
我所使用的是devxepress中的主菜单栏时barsubitem控件,想的是在其能够动态添加子菜单栏并能点击触发事件: /// <summary> /// 创建主按钮的子按钮 /// & ...
随机推荐
- 递归和非递归分别实现求n的阶乘
思路:举例求6的阶乘,6*5*4*3*2*1.可以将5开始看成另一个整型变量n,用一个循环每次将n的值减少1,.而递归也是如此,每次调用函数的时候将变量减一就可以. 方法一:非递归 //非递归: #i ...
- ubuntu防火墙ufw使用教程
查看ubuntu版本cat /etc/issue或者lsb_release -a 防火墙 由于Linux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的 ...
- 使用FormsAuthenticationTicket进行登陆验证
if (账号密码验证成功) { //登陆成功 Session["User"] = account; FormsAuthenticationTicket ticket = new F ...
- Hive 特殊分隔符处理
HIVE特殊分隔符处理 Hive对文件中的分隔符默认情况下只支持单字节分隔符,,默认单字符是\001.当然你也可以在创建表格时指定数据的分割符号.但是如果数据文件中的分隔符是多字符的,如下图: 01| ...
- delphi中Time消息的使用方法
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...
- Debian下Netbeans编辑器字体锯齿现象
第一步:到你netbeans安装目录下的etc目录下,找到netbeans.conf文件,打开准备编辑:第二步:在netbeans_default_options后面加上-J-Dawt.useSyst ...
- How to set up github to work with Visual Studio 2013
http://michaelcrump.net/setting-up-github-to-work-with-visual-studio-2013-step-by-step/ 1. Create gi ...
- java实现PC之间的udp数据单向传输
本示例包括两个客户端UDPClient和MyServer.UDPClient发送数据到MyServer,MyServer负责接收数据.可传输文本.视频.音频.图片等. 最近我在学习这一块,写个例子. ...
- 数据库返回刚插入记录的ID
--创建数据库和表create database MyDataBaseuse MyDataBase create table mytable(id int identity(1,1),name var ...
- axios 上传图片
let data = new FormData(); for (var i = 0; i < files.length; i++) { let file = files.item(i); dat ...