WinForm工具栏添加刷新、关闭、关闭全部、除此之外关闭的代码

2015-03-08 17:25:31  访问(1670) 赞(0) 踩(0)


        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 刷新ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                RefleshCtrl();
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }



        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                FormTitleClose();
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 关闭所有ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                FormTitleCloseAll();
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void 除此之外全部关闭ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            try
            {
                FormTitleCloseOthers();
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }


        /// <summary>
        /// 刷新
        /// </summary>
        public void RefleshCtrl()
        {

            UserControl uc = new MainList();

            if (uc == null)
                return;

            uc.Dock = DockStyle.Fill;
            Control pCtrl = this.Parent;

            pCtrl.Controls.Clear();
            pCtrl.Controls.Add(uc);
        }


        /// <summary>
        /// 获得TabControl
        /// </summary>
        /// <returns></returns>
        public TabPage GetTabPage(Control cItem)
        {

            while (true)
            {
                if (cItem.Parent == null)
                    break;

                if (cItem.Parent is TabPage)
                    return cItem.Parent as TabPage;

                cItem = cItem.Parent;
            }

            return null;
        }


        /// <summary>
        /// 获得TabControl
        /// </summary>
        /// <returns></returns>
        public TabControl GetTabControl(Control cItem)
        {
            while (true)
            {
                if (cItem.Parent == null)
                    break;

                if (cItem.Parent is TabControl)
                    return cItem.Parent as TabControl;

                cItem = cItem.Parent;
            }

            return null;
        }

        /// <summary>
        /// 
        /// </summary>
        protected void FormTitleClose()
        {
            TabPage tp = GetTabPage(this);

            if (tp == null)
            {
                Form theForm = this.FindForm();

                if (theForm != null)
                    theForm.Close();

                return;
            }

            TabControl tabCtrl = GetTabControl(tp);

            if (tabCtrl != null)
                tabCtrl.TabPages.Remove(tp);

        }

        /// <summary>
        /// 
        /// </summary>
        protected void FormTitleCloseAll()
        {

            TabPage tp = GetTabPage(this);

            if (tp == null)
                return;

            TabControl tabCtrl = GetTabControl(tp);

            if (tabCtrl == null)
                return;

            int iCount = tabCtrl.TabPages.Count;

            tp = null;

            for (int j = iCount - 1; j >= 0; --j)
            {
                tp = tabCtrl.TabPages[j];

                if (tp == null)
                    continue;

                if (tp.Tag != null && tp.Tag.ToString() == "0")
                    continue;

                tabCtrl.TabPages.RemoveAt(j);
                tp.Dispose();
            }

        }


        /// <summary>
        /// 
        /// </summary>
        protected void FormTitleCloseOthers()
        {

            TabPage tpCur = GetTabPage(this);

            if (tpCur == null)
                return;

            TabControl tabCtrl = GetTabControl(tpCur);

            if (tabCtrl == null)
                return;

            int iCount = tabCtrl.TabPages.Count;

            TabPage tp = null;

            for (int j = iCount - 1; j >= 0; --j)
            {
                tp = tabCtrl.TabPages[j];

                if (tp == null)
                    continue;

                if (tp == tpCur)
                    continue;

                if (tp.Tag != null && tp.Tag.ToString() == "0")
                    continue;

                tabCtrl.TabPages.RemoveAt(j);
                tp.Dispose();
            }
        }


上一条:

下一条:


 

相关评论

评论加载中……
 

发表评论

类型:
内容:
  (Alt+Enter)