啊鑫
2024-07-09 0552fcc8cb73fc3021e2915129f55a42ed3f20e5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#region
 
using System;
using System.Text;
using System.Windows.Forms;
using CSFrameworkV5.Common;
using CSFrameworkV5.Core;
using DevExpress.XtraTab;
 
#endregion
 
///*************************************************************************/
///*
///* 文件名    :ModuleLoadDevComponent.cs                              
///* 程序说明  : 加载引用Dev控件的模块
///* 原创作者  :www.csframework.com 
///* 
///* Copyright 2006-2021 C/S框架网 www.csframework.com
///*
///**************************************************************************/
 
namespace CSFrameworkV5.Library.CommonClass
{
    /// <summary>
    ///     加载引用Dev控件的模块
    /// </summary>
    public class ModuleLoadDevComponent : ModuleLoaderBase
    {
        /// <summary>
        ///     获取模块主窗体顶级菜单名称
        /// </summary>
        /// <returns></returns>
        private string GetModuleTopMenuNames()
        {
            var ms = _ModuleMainForm.GetModuleMenu();
            var sb = new StringBuilder();
            foreach (ToolStripItem item in ms.Items) sb.Append("," + item.Name);
 
            return sb.ToStringEx();
        }
 
        /// <summary>
        ///     每个模块对应一个TabPage, 將模块主窗体的Panel容器集成在主窗体的TabPage页内。
        ///     所有加载的模块主窗体的Panel容器都嵌套在主窗体的TabControl内。
        /// </summary>
        public override void LoadGUI(object mainTabControl)
        {
            if (mainTabControl == null) return;
 
            if (mainTabControl is XtraTabControl == false) return;
 
            //主窗体的TabControl组件
            var xtraTabControl = mainTabControl as XtraTabControl;
 
            try
            {
                //获取模块主窗体的Panel容器
                var container = _ModuleMainForm.GetContainer();
 
                if (null != container)
                {
                    container.Dock = DockStyle.Fill;
                    var page = new XtraTabPage();
                    page.Tag = _ModuleMainForm; //模块窗体
                    page.AccessibleDescription =
                        GetModuleTopMenuNames(); //用于激活当前窗体
                    page.Text =
                        _ModuleMainForm
                            .ModuleName; //取模块名称// this.GetCurrentModuleName();
                    page.Controls.Add(container); //嵌套在主窗体的TabControl内
                    xtraTabControl.TabPages.Add(page);
                }
            }
            catch (Exception ex)
            {
                Msg.ShowException(ex);
            }
        }
    }
}