winformlabel自动换行
首先是label的自動換行
WinForm
很多朋友都會在開發WinForm中遇到Label要顯示的內容太長,但卻不能換行的問題.這里我總結了幾種方法,供大家參考:
??????? 第一種是把Label的AutoSize屬性設為False,手動修改Label的大小.這樣的好處是會因內容的長度而自動換行,但是當內容的長度超過所設定的大小時,多出的內容就會無法顯示.因此,這種方法適合于基本確定內容長度的時候使用.
??????? 第二種是把Label的Dock設為FILL,同時將AutoSize屬性設為False,這種方法可將上面所說的缺點修正,但是同時Label會將其它 控件的位置霸占,影響布局.因此,在使用該方法時,最好給Label加上個Panel或GroupBox控件.
??????? 第三種是通過判斷內容的長度,動態設置Label的大小.具體程序如下(Label控件取名為Label1,顯示內容的字符串為str):
??????? int LblNum = str.Length;?? //Label內容長度
????????int RowNum = 10;?????????? //每行顯示的字數
????????float FontWidth = label1.Width / label1.Text.Length;??? //每個字符的寬度
????????int RowHeight=15;?????????? //每行的高度
????????int ColNum = (LblNum - (LblNum / RowNum) * RowNum) == 0 ? (LblNum / RowNum) : (LblNum / RowNum) + 1;?? //列數
????????label1.AutoSize = false;??? //設置AutoSize
????????label1.Width = (int)(FontWidth * 10.0);??????????//設置顯示寬度
????????label1.Height = RowHeight * ColNum;?????????? //設置顯示高度
??????? 通過這種方法可以令Label每行所顯示的字數得到控制,同時也動態的生成的所對應的行數,這對于排版有很大的好處,但是如果顯示內容過多,該方法也會令 多出來的內容無法顯示.因此,對于顯示內容過長的時候,可以在外層加上Panel或GroupBox,設置AutoScroll為true,這樣就不會因 為太長而導致Label高度擴大而影響其它控件的布局,同時也可以更好地顯示完整的內
?
后來我遇到一個問題,我的label拖得控件,是自動換行的,但是因為我的label高度是固定的所以顯示不全,這個時候我就找到了一個屬性:AutoEllipsis(啟用對擴展到標簽控件寬度以為的文本自動處理)設置為true,我的label就會只顯示一行,顯示不全的他會給我用...代替。后面就可以讓我們的label根據內容設置高度了。
總結
以上是生活随笔為你收集整理的winformlabel自动换行的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pro c 访问 MySQL_Pro*C
- 下一篇: c语言递归汉诺塔次数,汉诺塔问题(C语言