DockPanel 右键增加关闭,除此之外全部关闭的功能

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WeifenLuo.WinFormsUI.Docking
{
    public class DockContentEx : WeifenLuo.WinFormsUI.Docking.DockContent
    {
        private ContextMenuStrip contextMenuStrip1;
        private ToolStripMenuItem 关闭ToolStripMenuItem;
        private ToolStripMenuItem 全部关闭ToolStripMenuItem;
        private ToolStripMenuItem 除此之外全部关闭ToolStripMenuItem;
        private IContainer components;
    
        public DockContentEx()
        {
            //ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip();
            //ToolStripMenuItem tsmiClose = new System.Windows.Forms.ToolStripMenuItem();
            //ToolStripMenuItem tsmiCloseAll = new System.Windows.Forms.ToolStripMenuItem();

            //tsmiClose.Name = "cms";
            //tsmiClose.Size = new System.Drawing.Size(98, 22);
            //tsmiClose.Text = "关闭";
            //tsmiClose.Click += new System.EventHandler(this.tsmiClose_Click);

            //cms.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {tsmiClose});
            //cms.Name = "tsmiClose";
            //cms.Size = new System.Drawing.Size(99, 26);

            InitializeComponent();
            this.TabPageContextMenuStrip = contextMenuStrip1;
        }


        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
            this.关闭ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            this.除此之外全部关闭ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            this.全部关闭ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
            this.contextMenuStrip1.SuspendLayout();
            this.SuspendLayout();
            // 
            // contextMenuStrip1
            // 
            this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
            this.关闭ToolStripMenuItem,
            this.除此之外全部关闭ToolStripMenuItem,
            this.全部关闭ToolStripMenuItem});
            this.contextMenuStrip1.Name = "contextMenuStrip1";
            this.contextMenuStrip1.ShowImageMargin = false;
            this.contextMenuStrip1.Size = new System.Drawing.Size(142, 92);
            // 
            // 关闭ToolStripMenuItem
            // 
            this.关闭ToolStripMenuItem.Name = "关闭ToolStripMenuItem";
            this.关闭ToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
            this.关闭ToolStripMenuItem.Text = "关闭";
            this.关闭ToolStripMenuItem.Click += new System.EventHandler(this.关闭ToolStripMenuItem_Click);
            // 
            // 除此之外全部关闭ToolStripMenuItem
            // 
            this.除此之外全部关闭ToolStripMenuItem.Name = "除此之外全部关闭ToolStripMenuItem";
            this.除此之外全部关闭ToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
            this.除此之外全部关闭ToolStripMenuItem.Text = "除此之外全部关闭";
            this.除此之外全部关闭ToolStripMenuItem.Click += new System.EventHandler(this.除此之外全部关闭ToolStripMenuItem_Click);
            // 
            // 全部关闭ToolStripMenuItem
            // 
            this.全部关闭ToolStripMenuItem.Name = "全部关闭ToolStripMenuItem";
            this.全部关闭ToolStripMenuItem.Size = new System.Drawing.Size(141, 22);
            this.全部关闭ToolStripMenuItem.Text = "全部关闭";
            this.全部关闭ToolStripMenuItem.Click += new System.EventHandler(this.全部关闭ToolStripMenuItem_Click);
            // 
            // DockContentEx
            // 
            this.ClientSize = new System.Drawing.Size(292, 273);
            this.Font = new System.Drawing.Font("SimSun", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
            this.Name = "DockContentEx";
            this.contextMenuStrip1.ResumeLayout(false);
            this.ResumeLayout(false);

        }

        private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void 除此之外全部关闭ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            IDockContent[] documents = DockPanel.DocumentsToArray();

            foreach (IDockContent content in documents)
            {
                if (!content.Equals(this))
                {
                    content.DockHandler.Close();                    
                }
            }
        }

        private void 全部关闭ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            IDockContent[] documents = DockPanel.DocumentsToArray();

            foreach (IDockContent content in documents)
            {
                content.DockHandler.Close();
            }
        }
    }
}
其他准备以dockpanel方式打开的form都改为继承自上面这个DockPanelEx类
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DockPanel是一种用于界面布局的控件,DockPanel 2.5是DockPanel控件的一个版本。 DockPanel 2.5是对之前版本的扩展和改进。它提供了更加灵活的布局方式,使得界面的设计更加方便和高效。通过使用DockPanel控件,我们可以将界面分为几个不同的区域,并将控件放置在其中的特定位置。例如,我们可以在界面的顶部放置一个菜单栏,左侧放置一个导航栏,中间放置主要内容区域等等。 DockPanel 2.5除了基本的布局功能外,还提供了一些额外的功能。例如,我们可以通过指定DockPanel的样式和外观来自定义整个界面的外观。我们可以设置控件在DockPanel中的停靠方式,可以是靠左、靠右、靠上、靠下,或者填充整个区域。我们还可以设置控件之间的间距,使界面看起来更加整洁。 除了布局和外观的自定义功能外,DockPanel 2.5还提供了一些事件和方法,使得我们可以通过编程的方式对界面进行操作和响应。我们可以动态地添加、删除和移动控件,根据用户的操作来改变控件的位置和大小,以适应不同的需求。 总体来说,DockPanel 2.5是一个功能强大且灵活的界面布局控件。它可以帮助我们轻松地设计和实现复杂的界面布局,并通过自定义外观和编程操作来满足不同的需求。无论是开发桌面应用程序还是移动应用程序,DockPanel 2.5都是一个很好的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值