示例#1
0
        internal void OpenForm(frmMDIMain frmMDIMain, string menuCode, CoreComponent.BusinessObjects.MenuItem mItem)
        {
            try
            {
                //if (CanOpenForm(frmMDIMain, menuCode))
                //{
                string assemblyName = mItem.AssemblyName;
                string className    = mItem.ClassName;
                if (string.IsNullOrEmpty(assemblyName) || string.IsNullOrEmpty(className))
                {
                    MessageBox.Show(Common.GetMessage("2005"), Common.GetMessage("30007"), MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    //Assembly.Load(assemblyName).CreateInstance(
                    Assembly a = Assembly.Load(assemblyName);


                    object formObject = null;    //Activator.CreateInstance(a.GetType(className));
                    if (mItem.MenuItemParamList.Count == 0)
                    {
                        formObject = Activator.CreateInstance(a.GetType(className));
                    }
                    else
                    {
                        ArrayList arr = new ArrayList();
                        foreach (MenuItemParameter p in mItem.MenuItemParamList)
                        {
                            arr.Add(p.Value);
                        }
                        formObject = Activator.CreateInstance(a.GetType(className), arr.ToArray());
                    }


                    (formObject as Form).StartPosition   = FormStartPosition.Manual;
                    (formObject as Form).FormBorderStyle = FormBorderStyle.None;
                    (formObject as Form).MdiParent       = frmMDIMain;
                    (formObject as Form).Tag             = menuCode;
                    (formObject as Form).Location        = new Point(0, 0);
                    (formObject as Form).Tag             = menuCode;
                    (formObject as Form).Show();
                    if (menuCode == Common.LoginModuleCode)
                    {
                        (formObject as frmLogin).SignIn += new SignInHandler(BOSController_SignIn);
                    }
                    else
                    {
                        ((formObject as Form).Controls.Find("lblAppUser", true)[0] as Label).Text   = Common.GetMessage("10005", AuthenticationComponent.BusinessObjects.Authenticate.LoggedInUser.UserName);
                        ((formObject as Form).Controls.Find("lblAppUser", true)[0] as Label).Dock   = DockStyle.Left;
                        ((formObject as Form).Controls.Find("lblAppUser", true)[0] as Label).Anchor = AnchorStyles.Left;
                        ((formObject as Form).Controls.Find("lblAppUser", true)[0] as Label).Font   = new System.Drawing.Font("Verdana", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
                    }
                }
                //}
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 /// <summary>
 /// Common function to handle click event of all Menus on this MDI from.
 /// It will send the 'Tag' value of currently clicked menu to 'BOSController' where it will be
 /// handled by its 'OpenForm()' method to open particular desired form.
 /// </summary>
 /// <param name="sender">The current ToolStripMenuItem that is clicked.</param>
 /// <param name="e">Event argument for this ToolStripMenuItem.</param>
 private void MenuItemClick(object sender, EventArgs e)
 {
     try
     {
         CoreComponent.BusinessObjects.MenuItem mItem = m_menuItems.Find(delegate(CoreComponent.BusinessObjects.MenuItem m) { return(m.ModuleCode == (sender as ToolStripMenuItem).Tag.ToString()); });
         if (mItem.ModuleCode == Common.LogoutModuleCode)
         {
             Authenticate.LoggedInUser = null;
             CoreComponent.BusinessObjects.MenuItem mItem1 = m_menuItems.Find(delegate(CoreComponent.BusinessObjects.MenuItem m) { return(m.ModuleCode == Common.LoginModuleCode); });
             if (m_bosControlObject.CanOpenForm(this, Common.LoginModuleCode))
             {
                 m_bosControlObject.OpenForm(this, Common.LoginModuleCode, mItem1);
                 DisableAllMenus();
             }
         }
         else
         {
             if (m_bosControlObject.CanOpenForm(this, (sender as ToolStripMenuItem).Tag.ToString()))
             {
                 m_bosControlObject.OpenForm(this, (sender as ToolStripMenuItem).Tag.ToString(), mItem);
             }
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(Common.GetMessage("10002"), Common.GetMessage("30007"), MessageBoxButtons.OK, MessageBoxIcon.Error);
         Common.LogException(ex);
     }
 }
 private void frmMDIMain_Load(object sender, EventArgs e)
 {
     try
     {
         this.Text = CoreComponent.Core.BusinessObjects.Common.GetMessage("10003") + "  [" + (Common.LocationConfigId)Common.CurrentLocationTypeId + " : " + Common.LocationCode + "] " + "[v" + Common.Version + "]";          //Application name
         CoreComponent.BusinessObjects.MenuItem menuItem = m_menuItems.Find(delegate(CoreComponent.BusinessObjects.MenuItem m) { return(m.ModuleCode == Common.LoginModuleCode); });
         m_bosControlObject.OpenForm(this, Common.LoginModuleCode, menuItem);
     }
     catch (Exception ex)
     {
         MessageBox.Show(Common.GetMessage("10002"), Common.GetMessage("30007"), MessageBoxButtons.OK, MessageBoxIcon.Error);
         Common.LogException(ex);
     }
     //this.Text += " V1.0"; //Set version number
 }