2013-03-13 1 views
0

Я использую UltraToolbarsManager из пакета Infragistics NetAdvantage WinForms (v 2012 2), чтобы ввести панели инструментов ленты в существующем приложении WinForm.Инфракрасная лента проходит через максимизированного родителя MDI

Я установил основные ленты в основной форме контейнера MDI, а затем установил дополнительную ленту в менеджере внутри дочерней формы.
Свойство MdiMergeable равно true в обеих формах.

форма Ребенок устанавливается для заполнения всей доступной площади в родительском MDI:
- FormBorderStyle = FormBorderStyle.None
- Dock = DockStyle.Fill
- Нет управления коробки

Проблема заключается в том, что, когда я показываю() мой ребенок формировать его занимает всю область, панели инструментов слиты правильно, но я вижу границу формы. Когда я дважды нажимаю верхнюю границу формы, граница исчезает, и ребенок MDI показывает правильно (или, лучше, как я хочу).

Если я изменить форму укладки и стайлинга таким образом:
Dock = DockStyle.Fill =>WindowState = FormWindowState.Maximized

Форма сверху идет под лентой, и это частично скрытый от него.

+0

Есть ли конкретная причина, по которой вы устанавливаете DockStyle в DockStyle.Fill? – alhalama

+0

Мне нужно заполнить всю доступную область для детей MDI, и я думаю, что у меня есть два способа: заполнить или увеличить. На самом деле не работает. –

+0

Я считаю, что для ребенка MDI, что Maximize более подходит и, вероятно, поведение, которое вы хотите. Если он заставляет его идти за лентой на родителя, тогда мне нужно больше информации об этом, так как я не смог воспроизвести это. Лента минимизирована? Можете ли вы предоставить достаточно кода для воспроизведения проблемы? Также какова точная версия сборок Infragistics, на которые вы ссылаетесь? – alhalama

ответ

0

Установите следующие свойства:

  • FormBorderStyle = FormBorderStyle.None
  • Dock = DockStyle.None

При строительстве объекта вида и отложить до непосредственно перед дисплеем (Layout события) этот параметр:

  • WindowState = FormWindowState.Maximized

И форма отображается правильно.

Я думаю, что, когда я устанавливаю эти значения во время построения объекта формы, область доступности ребенка MDI не учитывает пространство, занимаемое лентой (возможно, доступная область оценивается до того, как лента занимает часть Это).
Когда я откладываю установку WindowState = FormWindowState.Maximized до события Макет, в доступной области ребенка MDI учитывается пространство, занимаемое лентой.

1

Проблема с отображением границы формы отсутствует, если вы не установили Dock в DockStyle.Fill, и Окно по-прежнему будет занимать всю область родителя MDI при его максимальном увеличении.

Если у вас нет особых причин для установки DockStyle.Fill, я бы порекомендовал оставить его DockStyle.None.

Обратите внимание, что вы увидите подобное поведение, если вы удалите ленту и используйте Microsoft MenuStrip на своем месте, чтобы лента не влияла на это поведение.

+0

Я заменил атрибут Fill DockStyle None, как вы сказали (так +1), и использовал FormWindowState.Maximized. Но последняя проблема, отмеченная в вопросе, остается. –

 Смежные вопросы

  • Нет связанных вопросов^_^