Заставить панель Toolstripcontainer работать как родительский элемент MDI - PullRequest
4 голосов
/ 29 марта 2012

Это для C #, и я работаю в среде Windows 7 с Visual Studio Express 2010. У меня есть приложение, в котором у меня есть док-станция toolstripcontainer, заполненная так, чтобы пользователи могли добавлять полоски инструментов по любому краю.Проблема состояла в том, что toolstripcontainer покрыл то, что я хочу использовать для хранения подокон.Первичная форма, содержащая toolstripcontainer, была установлена ​​как родительский элемент mdi.Я нашел эту статью полезной для получения подокон в контейнер: Как использовать ToolStripContainer с Dock = Fill на родительском объекте MDI?

Однако подокна сделаны таким образомпохоже, не ведут себя должным образом в «родной» среде MDI.Границы выглядят так, как будто эффект Windows 7 Aero был отключен, а сворачивание подокна заставляет его полностью исчезнуть.

По сути, я хочу область MDI для подокон, окруженную областями закрепления инструментальных полос.

Большое спасибо за вашу помощь

1 Ответ

4 голосов
/ 29 марта 2012

К сожалению, элемент управления ToolStripContainer не предназначен для работы с формой MDI.

Попробуйте вместо этого использовать элемент управления ToolStripPanel. Он не слишком хорошо работает в конструкторе (возможно, поэтому его нет в ToolBox по умолчанию).

Пример:

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);
  }
}
...