zoukankan      html  css  js  c++  java
  • DockPanel 右键增加关闭,除此之外全部关闭的功能

    在项目中新建一个class文件,代码如下:

    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类

  • 相关阅读:
    js打印的两种方法
    C# VS2010中,用微软自带的System.Data.OracleClient来连接Oracle数据库
    js获取本月第几周和本年第几周
    [转]优化数据库大幅度提高Oracle的性能
    sass的循环for,while,each
    sass的mixin,extend,placeholder,function
    float,absolute脱离文档流的总结
    React ref的用法
    cloneNode与事件拷贝
    mobx动态添加observable
  • 原文地址:https://www.cnblogs.com/s1ihome/p/2324369.html
Copyright © 2011-2022 走看看