首页 > 其他分享 >Devexpress xtraTabControl1实现多标签页选项卡,关闭选项卡,刷新重新加载

Devexpress xtraTabControl1实现多标签页选项卡,关闭选项卡,刷新重新加载

时间:2023-08-12 11:55:47浏览次数:59  
标签:xtraTabControl1 选项卡 Devexpress frm xpage dictXtraTabPage cText

        //选项卡
        Dictionary<string, XtraTabPage> dictXtraTabPage = new Dictionary<string, XtraTabPage>();
        Dictionary<string, Form> dictXtraForm = new Dictionary<string, Form>();

        public void ShowMDIForm(string cText, Form frm)
        {
            //判断是否已创建过
            if (dictXtraTabPage.ContainsKey(cText))
            {
                xtraTabControl1.SelectedTabPage = dictXtraTabPage[cText];
                return;
            }
		
	/*使用以下这段注释,需要把上面的if语句注释掉。
		//判断是否已创建过,排除已创建的选项卡,重新加载窗体和传参。
            if (dictXtraTabPage.ContainsKey(cText)&& frm.Text != "选项卡名称")
            {
                xtraTabControl1.SelectedTabPage = dictXtraTabPage[cText];
                return;
            }

            //已经创建过选项卡,先移除它,重新加载,达到刷新窗体数据的目的)

            if (dictXtraTabPage.ContainsKey(cText) && frm.Text=="选项卡名称")
            {
                xtraTabControl1.TabPages.Remove(dictXtraTabPage["选项卡名称"]);
                dictXtraTabPage.Remove(cText);
                dictXtraForm.Remove(cText);
            }
	*/

            frm.Visible = true;
            frm.Dock = DockStyle.Fill;
            frm.FormBorderStyle = FormBorderStyle.None;
            frm.WindowState = FormWindowState.Maximized;
            frm.TopLevel = false;//注意这里,否则加载不出来

            XtraTabPage xpage = new XtraTabPage();
            xpage.Controls.Add(frm);//添加要增加的控件

            xpage.Text = cText;//添加名称
            xpage.ShowCloseButton = DevExpress.Utils.DefaultBoolean.True;
            xtraTabControl1.TabPages.Add(xpage);
            xtraTabControl1.SelectedTabPage = xpage;//显示该页

            dictXtraTabPage.Add(cText, xpage);//加入XtraTabPage字典
            dictXtraForm.Add(cText, frm);//加入XtraForm字典

        }

        //关闭选项卡
        private void xtraTabControl1_CloseButtonClick(object sender, EventArgs e)
        {
            ClosePageButtonEventArgs a = (ClosePageButtonEventArgs)e;
            string cText = a.Page.Text;

            if (dictXtraForm.ContainsKey(cText))
            {
                Form form = dictXtraForm[cText] as Form;
                form.Close();
                form.Dispose();
                dictXtraForm.Remove(cText);
                xtraTabControl1.SelectedTabPageIndex = xtraTabControl1.SelectedTabPageIndex >= 1 ? xtraTabControl1.SelectedTabPageIndex - 1 : 0;
            }

            if (dictXtraTabPage.ContainsKey(cText))
            {
                xtraTabControl1.TabPages.Remove((XtraTabPage)a.Page);
                dictXtraTabPage.Remove(cText);
            }
        }


	//菜单栏点击窗体
      private void ToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Form form = new Form();
            ShowMDIForm("选项卡名称",from);
        }

  

标签:xtraTabControl1,选项卡,Devexpress,frm,xpage,dictXtraTabPage,cText
From: https://www.cnblogs.com/lmh6825/p/17624585.html

相关文章

  • 文档控件DevExpress Office File API v23.1新版亮点 - 支持.NET MAUI
    DevExpressOfficeFileAPI是一个专为C#,VB.NET和ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装MicrosoftOffice,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS,XLSx,DOC,DOCx,RTF,CSV和SnapReport等企业级文......
  • win11 PowerShell关闭拆分选项卡窗框窗口
    PowerShell拆分窗格一、拆分选项卡窗格1.鼠标操作:2.快捷键操作:Alt+Shift+d、Alt+Shift+minus、Alt+Shift+plus没点一次,就在当前选项卡上拆分一次。minus:键盘上-减号键plus:键盘上+加号键COMMA键盘上的“逗号”equal键盘上的“=”二、关闭拆分......
  • 界面控件DevExpress WPF Chart组件——拥有超快的数据可视化库!
    DevExpressWPF Chart组件拥有超大的可视化数据集,并提供交互式仪表板与高性能WPF图表库。DevExpressCharts提供了全面的2D/3D图形集合,包括数十个UI定制和数据分析/数据挖掘选项。PS:DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。......
  • 界面控件DevExpress BI Dashboard v23.1——支持全新的图标趋势指标
    DevExpress BIDashboardv23.1支持在Dashboard图表项中使用趋势指标,趋势指标有助于传达一段时间内的数据趋势——允许用户发现模式并更有效地分析复杂的数据集。使用DevExpressAnalyticsDashboard,再选择合适的UI元素(图表、数据透视表、数据卡、计量器、地图和网格),删除相应参......
  • DevExpress 按钮列点击多次才出发ButtonClick事件
    解决多次点击才能出现拉框,解决方法把GridView的EditorShowMode的模式选择了Click,应改为MouseDown就好了。图示位置: ......
  • DevExpress WPF Tree List组件,让数据可视化程度更高!(一)
    DevExpressWPFTreeList组件是一个功能齐全、数据感知的TreeView-ListView混合体,可以把数据信息显示为REE、GRID或两者的组合,在数据绑定或非绑定模式下,具有完整的数据编辑支持。DevExpressWPF 拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过......
  • DevExpress中GridControl控件的基本属性设置和使用方法
    (18条消息)DevExpress中GridControl控件的基本属性设置和使用方法_gridcontrol隐藏列_潘达小新的博客-CSDN博客......
  • VCL界面组件DevExpress VCL v23.1 - 全新的Windows 11主题
    DevExpressVCL是Devexpress公司旗下最老牌的用户界面套包,所包含的控件有:数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一代应用程序。DevExpressVCLv22.2已正式发布,新版本拥有全新......
  • DevExpress WinForms TreeList控件,让业务数据展示更清晰!(二)
    DevExpressWinForms的TreeList控件是一个功能齐全、数据感知的TreeView-ListView的混合体,它可以以树形、网格或两者结合的形式显示数据信息。无论是数据绑定模式还是非绑定模式,都具有完整的数据编辑支持。在上文中(点击这里回顾>>),我们为大家介绍了TreeListUI/UX的自定义、受Exce......
  • New!DevExpress WPF v23.1 最新版本系统环境配置要求
    DevExpressWPF 拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中......