public static bool ShowDialoger(IXPanel container, IKeyForm Link, CMenuItem mnu, ref UpdateData data, bool MultiSelected) { if (mnu == null) { return(false); } if (mnu.LinkValue == null || mnu.LinkValue.Trim().Length == 0) { return(false); } Type tFrm = Appasmb.GetType(string.Format(mnu.LinkValue, GlobalShare.SystemAppInfo.AssemName)); if (mnu.linkType != LinkType.WebPage) { if (tFrm == null) { MessageBox.Show(string.Format("未找到类{0}!", mnu.LinkValue)); return(false); } } switch (mnu.linkType) { case LinkType.WebPage: { if (container != null) //support the tab frame { ////WebBrowser wb = new WebBrowser(); ////wb.Url = new Uri(mnu.LinkValue); ////container.ControlsAdd(wb); ////wb.Dock = DockStyle.Fill; break; } WebForm wbfrm = null; if (ShowWebForms.ContainsKey(mnu.MnuId)) { wbfrm = ShowWebForms[mnu.MnuId]; } else { wbfrm = new WebForm(mnu.MnuId, mnu.LinkValue); } wbfrm.ShowDialog(ParentForm); break; } case LinkType.Dialog: { Ifrm_Model objInst; if (mnu.Params == null || mnu.Params.Trim().Length == 0) { objInst = Activator.CreateInstance(tFrm, null) as Ifrm_Model; } else { objInst = Activator.CreateInstance(tFrm, mnu.Params) as Ifrm_Model; } if (objInst == null) { return(false); } objInst.FromMenu = mnu; objInst.SetDock(XPlatformDockStyle.Fill); objInst.strUid = mnu.strUid; objInst.FromMenu = mnu; objInst.lb_Title.Text = mnu.MnuName; objInst.GridSource = mnu.GridSource; objInst.DetailSource = mnu.DetailSrouce; if (mnu.Module.Trim().Length > 0) { objInst.strModule = mnu.Module; } if (mnu.Screen.Trim().Length > 0) { objInst.strScreen = mnu.Screen; } if (mnu.Target.Trim().Length > 0) { objInst.strTarget = mnu.Target; } objInst.strKey = mnu.Key; objInst.Link = Link; IXForm frm = CreateForm(objInst.ControlType); frm.InitForm(mnu, SystemIcon); //objInst.AllowClose = false; if (objInst is ITranslateableInterFace && (Link is IKeyForm || Link == null)) { FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data); } objInst.TranData = mnu.TranDataMapping; objInst.FromMenu = mnu; if (objInst is ITranslateableInterFace) { data.ReqType = DataRequestType.Update; if (mnu.Params == null || mnu.Params.Trim().Length == 0) { data.ReqType = DataRequestType.Add; data.Updated = true; } (objInst as ITranslateableInterFace).NeedUpdateData = data; } frm.Controls_Add(objInst); if (!frm.ShowIXDialog()) { return(false); } if (objInst is ITranslateableInterFace) { data = (objInst as ITranslateableInterFace).NeedUpdateData; //传出 } break; } case LinkType.Select: { Dlg_CommModel objInst; if (mnu.Params == null || mnu.Params.Trim().Length == 0) { objInst = Activator.CreateInstance(tFrm, null) as Dlg_CommModel; } else { objInst = Activator.CreateInstance(tFrm, mnu.Params) as Dlg_CommModel; } if (objInst == null) { return(false); } objInst.FromMenu = mnu; objInst.strUid = mnu.strUid; //objInst.Dock = DockStyle.Fill; //objInst.lb_Title.Text = mnu.MnuName; objInst.MultiSelect = MultiSelected; objInst.GridSource = mnu.GridSource; objInst.DetailSource = mnu.DetailSrouce; if (mnu.Module.Trim().Length > 0) { objInst.strModule = mnu.Module; } if (mnu.Screen.Trim().Length > 0) { objInst.strScreen = mnu.Screen; } if (mnu.Target.Trim().Length > 0) { objInst.strTarget = mnu.Target; } objInst.strKey = mnu.Key; objInst.Link = Link; if (container != null) { objInst.Icon = SystemIcon; } objInst.Text = mnu.Title; objInst.MaximizeBox = false; objInst.MinimizeBox = false; objInst.FormBorderStyle = FormBorderStyle.FixedDialog; objInst.StartPosition = FormStartPosition.CenterParent; //objInst.AllowClose = false; //(objInst as Dlg_CommModel).ReturnData = data;//传入 if (objInst is ITranslateableInterFace) { FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data, false); } if (objInst.ShowDialog() != DialogResult.Yes) { return(false); } if (objInst is ITranslateableInterFace && Link is IKeyForm) { data = (objInst as ITranslateableInterFace).NeedUpdateData; //传出 } break; } case LinkType.Form: { Ifrm_Model objInst; if (mnu.Params == null || mnu.Params.Trim().Length == 0) { objInst = Activator.CreateInstance(tFrm, null) as Ifrm_Model; } else { objInst = Activator.CreateInstance(tFrm, mnu.Params) as Ifrm_Model; } if (objInst == null) { return(false); } objInst.FromMenu = mnu; objInst.strUid = mnu.strUid; objInst.SetDock(XPlatformDockStyle.Fill); objInst.lb_Title.Text = mnu.MnuName; objInst.GridSource = mnu.GridSource; objInst.DetailSource = mnu.DetailSrouce; if (mnu.Module.Trim().Length > 0) { objInst.strModule = mnu.Module; } if (mnu.Screen.Trim().Length > 0) { objInst.strScreen = mnu.Screen; } if (mnu.Target.Trim().Length > 0) { objInst.strTarget = mnu.Target; } objInst.strKey = mnu.Key; objInst.Link = Link; IXForm frm = CreateForm(objInst.ControlType); frm.InitForm(mnu, SystemIcon); //objInst.AllowClose = false; if (objInst is ITranslateableInterFace && (Link is IKeyForm || Link == null)) { FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data); //(objInst as ITranslateableInterFace).NeedUpdateData = data; } frm.Controls_Add(objInst); frm.ShowIXDialog(); if (objInst is ISaveableInterFace) { data = (objInst as ISaveableInterFace).NeedUpdateData; //传出 } break; } case LinkType.UserControl: { container.Controls_Clear(); //清除所有控件 Ifrm_Model objInst; if (mnu.Params == null || mnu.Params.Trim().Length == 0) { objInst = Activator.CreateInstance(tFrm, null) as Ifrm_Model; } else { objInst = Activator.CreateInstance(tFrm, mnu.Params) as Ifrm_Model; } if (objInst == null) { return(false); } objInst.FromMenu = mnu; objInst.strUid = mnu.strUid; objInst.SetDock(XPlatformDockStyle.Fill); objInst.lb_Title.Text = mnu.MnuName; objInst.GridSource = mnu.GridSource; objInst.DetailSource = mnu.DetailSrouce; objInst.strKey = mnu.Key; if (mnu.Module.Trim().Length > 0) { objInst.strModule = mnu.Module; } if (mnu.Screen.Trim().Length > 0) { objInst.strScreen = mnu.Screen; } if (mnu.Target.Trim().Length > 0) { objInst.strTarget = mnu.Target; } objInst.strKey = mnu.Key; objInst.Link = Link; if (objInst is ITranslateableInterFace && (Link is IKeyForm || Link == null)) { FillTranData(Link, objInst as ITranslateableInterFace, ref mnu, ref data); } container.Controls_Add(objInst); objInst.ToTopLevel(); //objInst.Focus(); break; } default: { break; } } return(true); }
public static bool ShowDialoger(IXPanel container, IKeyForm Link, CMenuItem mnu, ref UpdateData data) { return(ShowDialoger(container, Link, mnu, ref data, false)); }