2013-03-13 25 views
0

我使用Infragistics NetAdvantage WinForms軟件包(v 2012 2)的UltraToolbarsManager在現有的 WinForm應用程序中引入功能區工具欄。Infragistics功能區遍歷最大化的MDI子代

我在主MDI容器窗體中設置了主色帶,然後在子窗體中的管理器中設置了另一個色帶。
這兩種形式的MdiMergeable屬性都設置爲true。

子窗體的成立填補所有可用的面積在MDI父:
- FormBorderStyle = FormBorderStyle.None
- Dock = DockStyle.Fill
- 沒有控制箱

的問題是,當我告訴()我的孩子形成它採取所有區域,工具欄合併正確,但我看到窗體邊框。當我雙擊窗體的頂部邊框時,邊框消失,並且MDI子顯示正確(或更好,如我所願)。

如果更改形式造型這種方式:
Dock = DockStyle.Fill =>WindowState = FormWindowState.Maximized

形式頂部進入色帶下和它的部分地由它隱藏。

+0

是否有一個特定的原因爲什麼你將DockStyle設置爲DockStyle.Fill? – alhalama 2013-03-15 19:19:36

+0

我必須填寫所有的MDI兒童可用區域,我想我有兩種方法:填充或最大化。其實都不起作用。 – 2013-03-20 08:48:13

+0

我相信對於最大化MDI孩子更合適,可能是你想要的行爲。如果要麼導致它落在父母的背後,那麼我需要關於這個問題的更多細節,因爲我無法再現這一點。色帶是否最小化?你能提供足夠的代碼來重現問題嗎?還有什麼是您參考的Infragistics程序集的確切版本? – alhalama 2013-03-20 15:01:35

回答

0

設置下列屬性:

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

在形式對象構造和推遲到剛顯示前(在Layout事件)本設定:

  • WindowState = FormWindowState.Maximized

然後窗體顯示正確。

我認爲,當我在構建表單對象的過程中設置這個值時,MDI子可用區域不考慮該功能區佔用的空間(也許可用區域在功能區佔用部分它)。
當我將WindowState = FormWindowState.Maximized的設置推遲到Layout事件時,MDI子可用區域會考慮功能區佔用的空間。

1

如果您未將Dock設置爲DockStyle.Fill,並且窗口在最大化時仍然佔用MDI父級的整個區域,則表單邊框顯示問題不存在。

除非你有設置DockStyle.Fill的特定原因,否則我會建議讓它停靠DockStyle.None。

請注意,如果您移除功能區並在其位置使用Microsoft MenuStrip,則看到類似行爲,以便功能區似乎不會影響此行爲。

+0

我用None代替了填充DockStyle屬性,正如你所說(所以+1)並使用了FormWindowState.Maximized。但問題中強調的最後一個問題仍然存在。 – 2013-03-20 08:54:03