第一種是把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高度擴大而影響其它控制項的布局,同時也可以更好地顯示完整的內容。
三種方法都有它的優缺點,沒有說誰優誰劣,只有最適合的,朋友們不妨試試
C 在WinForm開發中Label換行方法
第一種是把label的autosize屬性設為false,手動修改label的大小.這樣的好處是會因內容的長度而自動換行,但是當內容的長度超過所設定的大小時,多出的內容就會無法顯示.因此,這種方法適合於基本確定內容長度的時候使用。第二種是把label的dock設為fill,同時將autosize屬性...
C 在WinForm開發中Label換行方法
第一種是把label的autosize屬性設為false,手動修改label的大小.這樣的好處是會因內容的長度而自動換行,但是當內容的長度超過所設定的大小時,多出的內容就會無法顯示.因此,這種方法適合於基本確定內容長度的時候使用。第二種是把label的dock設為fill,同時將autosize屬性...
c 與 winform 介面開發
c 與 net 開發,一堆又一堆的新名詞,頭暈目眩,比如 clr apartments sta mta com 吐槽無力,只乙個問題 微軟真的是軟體公司,而不是文學公司?form1.cs 與 form1.designer.cs 是 2 個檔案,一起定義了乙個 form 的行為 樣式等。在 vs201...