c# - 使 Toolstripcontainer 面板像 MDI 父级一样工作

标签 c# mdi toolstripcontainer

这是针对 C# 的,我在使用 Visual Studio Express 2010 的 Windows 7 环境中工作。 我有一个应用程序,我有一个 toolstripcontainer 停靠栏设置为填充,以便用户可以在任何边缘添加工具条。问题是 toolstripcontainer 已经覆盖了我想用来保存子窗口的内容。包含 toolstripcontainer 的主窗体已设置为 mdi 父级。 我发现这篇文章对于将子窗口放入容器很有用: How to uses a ToolStripContainer whith Dock=Fill on a MDI parent?

但是,以这种方式完成的子窗口在“ native ”MDI 环境中的行为似乎不尽如人意。寄宿生看起来好像 Windows 7 Aero 效果已被禁用,最小化子窗口使其完全消失。

本质上,我想要一个 MDI 区域,用于被工具条停靠区域包围的子窗口。

非常感谢您的帮助

最佳答案

不幸的是,ToolStripContainer 控件不适用于 MDI 窗体。

尝试改用 ToolStripPanel 控件。它在设计器中效果不佳(这可能是默认情况下它不在工具箱中的原因)。

例子:

public partial class Form1 : Form {

  public Form1() {
    InitializeComponent();

    this.IsMdiContainer = true;
    ToolStripPanel leftPanel = new ToolStripPanel() { Dock = DockStyle.Left };
    ToolStripPanel topPanel = new ToolStripPanel() { Dock = DockStyle.Top };
    this.Controls.Add(leftPanel);
    this.Controls.Add(topPanel);

    ToolStrip ts = new ToolStrip() { Dock = DockStyle.Fill };
    ToolStripButton tsb = new ToolStripButton("Test", SystemIcons.Application.ToBitmap());
    ts.Items.Add(tsb);

    topPanel.Controls.Add(ts);
  }
}

关于c# - 使 Toolstripcontainer 面板像 MDI 父级一样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9926716/

相关文章:

c# - 等待MDI子进程关闭,类似于ShowDialog()

c# - Toolstrip 容器中的 Toolstrip 顺序

c# - 创建一个 c# windows 服务来轮询数据库

c# - 如何实现更独特的名称(MVC)

c# - Web API 服务 - 如何使服务器上的请求并发执行

c# - AvalonDock-如何为所有 anchor 禁用自动隐藏功能

c# - 如何在 MVVM 中处理 CloseDocument 命令

c# - 是否可以在 MDI C# Winforms 中更改最小化窗口的大小