fqc
lu
2025-05-06 437425784b7612e10d4a54bd64905c508347514d
DevApp/Gs.DevApp/DevFrm/FrmMain.cs
@@ -302,7 +302,7 @@
        /// <param name="tabText">当前选项卡页Text标题</param>
        /// <param name="newFormName">当前选项卡中的新窗体路径,类名</param>
        public void AddTabpage(XtraTabControl tabControl, string tabPageName,
            string tabText, string newFormName, Image imgIcon)
            string tabText, string newFormName, Image imgIcon,string InitializeVal="")
        {
            if (IsTabpageExsit(tabControl, tabPageName)) return;
            var newPage = new XtraTabPage();
@@ -311,7 +311,7 @@
            newPage.Tooltip = newPage.Name;
            newPage.Appearance.Header.Font = tab.Appearance.Font;
            newPage.ImageOptions.Image = imgIcon;
            var fm = AddNewForm(newFormName);
            var fm = AddNewForm(newFormName, InitializeVal);
            if (fm != null)
            {
                newPage.Controls.Add(fm);
@@ -367,7 +367,7 @@
        ///     在选项卡中生成窗体
        /// </summary>
        /// <param name="form">窗体名称</param>
        private Form AddNewForm(string formName)
        private Form AddNewForm(string formName,string InitializeVal)
        {
            try
            {
@@ -384,12 +384,19 @@
                newForm.Dock = DockStyle.Fill;
                newForm.Visible = true;
                //实现子窗体的委托beg
                EventInfo evt = newForm.GetType().GetEvent("UpdateParent",
                EventInfo evt = newForm.GetType().GetEvent("ToUpdateParent",
                    BindingFlags.NonPublic | BindingFlags.Instance
                    | BindingFlags.Public
                );
                if (evt != null)
                    evt.AddEventHandler(newForm, new EventHandler<UpdateParentEventArgs>(UpdateParent_OnChange));
                if (!string.IsNullOrEmpty(InitializeVal)) {
                    Assembly assembly = Assembly.GetExecutingAssembly();
                    Type type = assembly.GetType(formName);
                    MethodInfo method = type.GetMethod("Initialize"); // 获取Initialize方法的信息
                    if (method != null)
                        method.Invoke(newForm, new object[] { InitializeVal }); // 调用Initialize方法并传递参数
                }
                //实现子窗体的委托end
                return newForm;
            }
@@ -404,13 +411,33 @@
        private void UpdateParent_OnChange(object sender, UpdateParentEventArgs e)
        {
            List<string> _val = e.StringList;
            MsgHelper.ShowError(_val[0]);
            var tabPageName = _val + "_page";
            var tabText = ""; //当前选项卡页Text标题
            var newFormName = "Gs.DevApp.DevFrm.Frm_MesInvItemOut_SCLL"; //存路径,类名
            Image imgIcon = null;
            AddTabpage(tab, tabPageName, tabText,
                newFormName, imgIcon);
            string _formName = _val[0];//类名
            string _parm1= _val[1];
            var _obj = new
            {
                guid = _formName //主建
            };
            try
            {
                var strJson = UtilityHelper.HttpPost("", "MenuAction/GetModelByNameSpace",
                    JsonConvert.SerializeObject(_obj));
                var _rtn = UtilityHelper.ReturnToDynamic(strJson);
                if (_rtn.rtnCode > 0)
                {
                    var dy = _rtn.rtnData;
                    string tabPageName = dy.guid.ToString() + "_page";
                    string tabText = dy.name.ToString(); //当前选项卡页Text标题
                    string newFormName = dy.formPath.ToString(); //存路径,类名
                    Image imgIcon = UtilityHelper.GetImgFromResource(dy.icon.ToString(), 2);
                    //先关闭
                    RemoveTabPage(tab, tabPageName);
                    AddTabpage(tab, tabPageName, tabText,newFormName, imgIcon, _parm1);
                }
            }
            catch (Exception ex)
            {
                MsgHelper.Warning("提示:" + ex.Message);
            }
        }
        //实现子窗体的委托end
        private int _userOut()