5

これは C# 用であり、私は Visual Studio Express 2010 を使用して Windows 7 環境で作業しています。ユーザーがツールストリップを任意のエッジに追加できるように、toolstripcontainer ドックが設定されているアプリケーションがあります。問題は、toolstripcontainer が、サブウィンドウを保持するために使用したい をカバーしていたことです。toolstripcontainer を含むプライマリ フォームは、mdi 親として設定されています。この記事は、サブウィンドウをコンテナーに入れるのに役立つことがわかりました: How to uses a ToolStripContainer whith Dock=Fill on a MDI parent?

ただし、この方法で作成されたサブウィンドウは、「ネイティブ」MDI 環境では正常に動作しないようです。境界線は、Windows 7 の Aero 効果が無効になっているように見え、サブウィンドウを最小化すると完全に消えます。

基本的に、ツールストリップのドッキング領域に囲まれたサブウィンドウ用の MDI 領域が必要です。

助けてくれてどうもありがとう

4

1 に答える 1

5

残念ながら、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);
  }
}
于 2012-03-29T14:37:28.993 に答える