我有一個WinForms應用中,我想要動態對接添加用戶控件到頂端:自動調整大小面板的文本內容
this.Controls.Clear();
this.Controls.Add(myCustomControl(){Title="first", content="first text", Dock=DockStyle.Top});
this.Controls.Add(myCustomControl(){Title="second", content="very long text, where......", Dock=DockStyle.Top});
現在myCostumControl
[黃色]是一個具有以下內容的用戶控件:
TopTitle [PINK]: A Label, docked to the top
BottomContent [GREEN]: A Panel, Fills out the rest of the Control below the TopTitle (Dockstyle Fill)
TextContent [BLUE]: A multiline Textbox, docked (fill) within the Panel.
所以它看起來像這樣:
現在我需要實現的是,myCustomControl的高度是根據「TextContent」 - TextBox的文本內容,因此我可以堆疊多個控件。所以如果只有一個「Hello World」,那麼它的高度應該很小,如果我把Windows EULA放進去,它應該很長。
我已經嘗試搞亂所有「AutoSize」屬性我可以讓我的手,但文本框要麼完全消失或它沒有影響。
我也嘗試過改變調整文本框:
Size size = TextRenderer.MeasureText(txtContent.Text, txtContent.Font);
txtContent.Height = size.Height;
沒有成功,無論是
顯然,對於同一個控件,不能同時使用'DockStyle.Fill'和'AutoSize'。 – Phil1970
我也嘗試DockStyle.Top爲TextBox。沒有工作,要麼 –
順便說一下,'TextBox'沒有任何'AutoSize'屬性...那麼你如何自動化它呢?自定義代碼? – Phil1970