2010-10-19 240 views
8

是否可以使用WinForms佈局引擎來設置表單,以便完全自動調整高度以適應內容,但寬度可以由用戶調整?WinForms垂直自動調整大小,而寬度可調整?

作爲一個例子,考慮以下有些做作形式:

  • TLPTableLayoutPanel,具有1行和2列。
  • label1Label,包含在左欄中。將Text設置爲長,AutoSize爲false,Dock爲填充。
  • button1:按鈕,包含在右列中。將AutoSize設置爲true。
  • 現在將行設置爲「AutoSize」,將第一列設置爲「100%」,將第二列設置爲「AutoSize」。
  • 最後,將整個TLP設置爲AutoSize true,AutoSizeMode設置爲GrowAndShrink。

在這一點上,TLP可以合理地水平調整大小,但WinForms似乎不允許這樣做。

想法是,包含此TLP的表單將根據寬度垂直增長或縮小,用戶可以像往常一樣調整窗口大小來改變寬度。

回答

6

希望你現在已經得到了解決方案。但是,如果有人有相同的查詢,您可以將最大尺寸屬性的寬度設置爲表格的實際寬度和最大尺寸的高度爲0.

1

這是完全可能的。爲此,您必須在表單上覆蓋SetBoundsCore。然後,您可以控制高度,以便在調整大小可能需要時不會更改。只需將您想要的高度存儲在變量中,然後讓您的覆蓋始終將其設置爲該值。這樣,當您自動調整高度時,您可以在設置表格HeightSetBoundsCore之前保存新的高度,以此兌現新的高度。