隐藏和显示左边树效果

2015-03-08 13:06:02  访问(2447) 赞(0) 踩(0)


相关下载:SlowXMainClient源码示例v2     

说明:

1、winform控件上左到右分别添加panel_Left(Panel),splitter1(Splitter)和panel_Main(Panel)控件。Dock属性分别是Left、None、Fill。

2、给splitter1添加右键菜单事件。


如图:


核心代码:



        #region 隐藏和显示左边树效果

        /// <summary>
        /// 
        /// </summary>
        int saveLeftWidth = -1;

        /// <summary>
        /// 隐藏左边树
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 隐藏左边树ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            HideLeftTree();
        }

        /// <summary>
        /// 显示左边树
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 显示左边树ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            ShowLeftTree();
        }


        /// <summary>
        /// splitter移动
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void splitter1_SplitterMoved(object sender, SplitterEventArgs e)
        {
            SplitterRefresh();
        }

        /// <summary>
        /// 隐藏左边树
        /// </summary>
        protected void HideLeftTree()
        {
            if (this.panel_Left.Size.Width > 0)
            {
                this.panel_Left.Size
                    =
                    new Size
                        (
                            0,
                            this.panel_Left.Size.Height
                        );
                 

                SplitterRefresh();

            }
        }

        /// <summary>
        /// 显示左边树
        /// </summary>
        protected void ShowLeftTree()
        {
            if (this.panel_Left.Size.Width == 0)
            {
                this.panel_Left.Size
                    =
                    new Size
                        (
                            saveLeftWidth,
                            this.panel_Left.Size.Height
                        );  

                SplitterRefresh();

            }
        }

        /// <summary>
        /// Splitter移动后刷新
        /// </summary>
        protected void SplitterRefresh()
        {
            panel_Left.Refresh();
            panel_Main.Refresh();

            if (this.panel_Left.Size.Width > 0)
            {
                saveLeftWidth = this.panel_Left.Size.Width;

                隐藏左边树ToolStripMenuItem.Enabled = true;
                显示左边树ToolStripMenuItem.Enabled = false;
            }
            else
            {
                隐藏左边树ToolStripMenuItem.Enabled = false;
                显示左边树ToolStripMenuItem.Enabled = true;
            }
        }

        #endregion 隐藏和显示左边树效果


上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)
 
  ┈全部┈  
 
(显示默认分类)