C 在WinForm開發中Label換行方法

2021-09-07 21:53:23 字數 1027 閱讀 9507

第一種是把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...