Beispiel #1
0
        public void Edit()
        {
            string   assemblyName = "DotNet.WinForm";
            string   formName     = "FrmRoleEdit";
            Type     assemblyType = CacheManager.Instance.GetType(assemblyName, formName);
            BaseForm frmRoleEdit  = (BaseForm)Activator.CreateInstance(assemblyType, this.TargetRoleId);

            if (frmRoleEdit.ShowDialog(this) == DialogResult.OK && frmRoleEdit.Changed)
            {
                this.FormOnLoad(false);
            }
        }
Beispiel #2
0
        /// <summary>
        /// 打开新窗体
        /// </summary>
        private void OpenForm(TreeNode treeNode)
        {
            //DataRow dataRow = treeNode.Tag as DataRow;
            BaseModuleEntity moduleEntity = treeNode.Tag as BaseModuleEntity;

            // 若又没C\S窗体,又没B\S网址,那就是空的,不执行任何操作
            //if (string.IsNullOrEmpty(dataRow[BaseModuleEntity.FieldFormName].ToString())
            //    && string.IsNullOrEmpty(dataRow[BaseModuleEntity.FieldAssemblyName].ToString())
            //    && string.IsNullOrEmpty(dataRow[BaseModuleEntity.FieldNavigateUrl].ToString()))
            if (string.IsNullOrEmpty(moduleEntity.FormName)
                && string.IsNullOrEmpty(moduleEntity.AssemblyName)
                && string.IsNullOrEmpty(moduleEntity.NavigateUrl))
            {
                return;
            }
            // 如果打开的是消息窗口
            if (moduleEntity.FormName == "FrmMessage")
            {
                if (barLeft.Items.Contains("dockContainerItem2"))
                {
                    barLeft.AutoHide = false;
                    barLeft.SelectedDockContainerItem = dockContainerItem2;
                }
                if (barRightN.Items.Contains("dockContainerItem2"))
                {
                    barRightN.AutoHide = false;
                    barRightN.SelectedDockContainerItem = dockContainerItem2;
                }
                if (barRight.Items.Contains("dockContainerItem2"))
                {
                    barRight.AutoHide = false;
                    barRight.SelectedDockContainerItem = dockContainerItem2;
                    barRight.Focus();
                }
                return;
            }
            // 如果为锁定窗体
            if (moduleEntity.FormName == "FrmLock")
            {
                tmrLock.Stop();
                DotNet.WinForm.FrmScreenLock frmLock = new FrmScreenLock();
                if (frmLock.ShowDialog(this) == DialogResult.OK)
                {
                    LoadFormLockInfo();
                }
                return;
            }
            // 优先打开C\S窗体
            if (!string.IsNullOrEmpty(moduleEntity.FormName))
            {
                // 通过数据库的值获得要打开的模块对应的窗体类型。
                System.Type type = System.Type.GetType(moduleEntity.AssemblyName + "." + moduleEntity.FormName + "," + moduleEntity.AssemblyName);
                if (type == null)
                {
                    // MessageBox.Show(AppMessage.MSG1000, AppMessage.MSG0000, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                object obj = (object)Activator.CreateInstance(type, null);
                BaseForm mdiForm = obj as BaseForm;
                // 判断是否弹出窗口,进行特殊处理
                if (mdiForm.ShowDialogOnly)
                {
                    mdiForm.HelpButton = false;
                    mdiForm.ShowInTaskbar = false;
                    mdiForm.MinimizeBox = false;
                    mdiForm.ShowDialog(this);
                    return;
                }
                // 打开窗口
                if (!this.AllowSameMenu)
                {
                    if (TabIsExist(moduleEntity.Code))
                    {
                        return;
                    }
                }
                CreateTabControl(mdiForm, moduleEntity.Code, moduleEntity.Code);
                return;
            }
            // 这里是直接打开可执行文件的方法
            if (string.IsNullOrEmpty(moduleEntity.FormName) && !string.IsNullOrEmpty(moduleEntity.AssemblyName))
            {
                string assemblyName = moduleEntity.AssemblyName;
                assemblyName = this.UserInfo.GetUserParameter(assemblyName);
                System.Diagnostics.Process.Start(assemblyName);
                return;
            }
            // 最后判断是否为要打开的网址
            string url = moduleEntity.NavigateUrl;
            if (!string.IsNullOrEmpty(url))
            {
                url = this.UserInfo.GetUrl(url);
                
                if (treeNode.Text == "办公管理")
                {
                    this.webBrowser.Url = new Uri(url);
                    // tabControlMain.Refresh();
                    tabControlMain.SelectedTab = this.tabItemMain;
                    return;
                }
                if (TabIsExist("Browser"))
                {
                    FrmIE frmIE = (FrmIE)tabControlMain.SelectedPanel.Controls[0];
                    frmIE.webBrowser.Navigate(url);
                }
                else
                {
                    FrmIE frmIE = new FrmIE { MUrl = url };
                    // 浏览器为了标识Name保持只打开一个
                    CreateTabControl(frmIE, "Browser", moduleEntity.Code);
                }
            }
        }