Example #1
0
        public static void SetMenuState(this IChildMdiForm menuWindow)
        {
            if (menuWindow == null)
            {
                return;
            }
            IList <IButton> tsbs = menuWindow.GetCustomProperty(s_windowMenuButtonName) as IList <IButton>;

            if (tsbs != null)
            {
                IControlManagerContainer cmContainer = menuWindow as IControlManagerContainer;
                if (cmContainer != null)
                {
                    if (cmContainer != null && cmContainer.ControlManager != null)
                    {
                        foreach (IButton tsb in tsbs)
                        {
                            SetTsbState(tsb, cmContainer.ControlManager);
                        }
                    }
                }
                else
                {
                    IDisplayManagerContainer dmContainer = menuWindow as IDisplayManagerContainer;
                    if (dmContainer != null && dmContainer.DisplayManager != null)
                    {
                        foreach (IButton tsb in tsbs)
                        {
                            SetTsbState(tsb, dmContainer.DisplayManager);
                        }
                    }
                }
            }
        }
Example #2
0
        public static void DisposeWindowMenu(this IChildMdiForm menuWindow)
        {
            IList <IButton> tsbs = menuWindow.GetCustomProperty(s_windowMenuButtonName) as IList <IButton>;

            if (tsbs != null)
            {
                foreach (IButton tsb in tsbs)
                {
                    tsb.Click -= new EventHandler(tsb_Click);
                }
                tsbs.Clear();
            }

            ToolStrip toolStrip = menuWindow.GetCustomProperty("WindowMenuGeneratedToolStrip") as ToolStrip;

            if (toolStrip != null)
            {
                menuWindow.RevertMergeToolStrip(toolStrip);
            }

            IControlManagerContainer cmContainer = menuWindow as IControlManagerContainer;

            if (cmContainer != null && cmContainer.ControlManager != null)
            {
                cmContainer.ControlManager.DisplayManager.PositionChanged -= new EventHandler(cmContainer.ControlManager_PositionChanged);
                cmContainer.ControlManager.EditEnded    -= new EventHandler(cmContainer.ControlManager_EditEnded);
                cmContainer.ControlManager.StateChanged -= new EventHandler(cmContainer.ControlManager_StateChanged);
            }
            else
            {
                IDisplayManagerContainer dmContainer = menuWindow as IDisplayManagerContainer;
                if (dmContainer != null && dmContainer.DisplayManager != null)
                {
                    dmContainer.DisplayManager.PositionChanged -= new EventHandler(dmContainer.DisplayManager_PositionChanged);
                }
            }
        }
Example #3
0
        public static void GenerateWindowMenu(this IChildMdiForm menuWindow, IList <WindowMenuInfo> windowMenuInfos)
        {
            // WindowMenu
            if (windowMenuInfos != null && windowMenuInfos.Count > 0)
            {
                IList <IButton> tsbs            = new List <IButton>();
                ToolStrip       toolStripDetail = GenerateWindowMenu(windowMenuInfos, tsbs, GetExistToolStripItems(menuWindow.ToolStrip));
                menuWindow.MergeToolStrip(toolStripDetail);

                menuWindow.SetCustomProperty(s_windowMenuButtonName, tsbs);
                menuWindow.SetCustomProperty("WindowMenuGeneratedToolStrip", toolStripDetail);

                IControlManagerContainer cmContainer = menuWindow as IControlManagerContainer;
                if (cmContainer != null && cmContainer.ControlManager != null)
                {
                    cmContainer.ControlManager.DisplayManager.PositionChanged -= new EventHandler(cmContainer.ControlManager_PositionChanged);
                    cmContainer.ControlManager.EditEnded    -= new EventHandler(cmContainer.ControlManager_EditEnded);
                    cmContainer.ControlManager.StateChanged -= new EventHandler(cmContainer.ControlManager_StateChanged);

                    cmContainer.ControlManager.DisplayManager.PositionChanged += new EventHandler(cmContainer.ControlManager_PositionChanged);
                    cmContainer.ControlManager.EditEnded    += new EventHandler(cmContainer.ControlManager_EditEnded);
                    cmContainer.ControlManager.StateChanged += new EventHandler(cmContainer.ControlManager_StateChanged);
                }
                else
                {
                    IDisplayManagerContainer dmContainer = menuWindow as IDisplayManagerContainer;
                    if (dmContainer != null && dmContainer.DisplayManager != null)
                    {
                        // only one. DetailWindow.DisplayManager = MasterWindow.DisplayManager. 当时也可能不一致,-=无效。
                        // // 可能和MasterWindow不是同一个ControlManager
                        dmContainer.DisplayManager.PositionChanged -= new EventHandler(dmContainer.DisplayManager_PositionChanged);
                        dmContainer.DisplayManager.PositionChanged += new EventHandler(dmContainer.DisplayManager_PositionChanged);
                    }
                }
            }
        }