程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#在WinForm開發中Label換行方法

C#在WinForm開發中Label換行方法

編輯:C#入門知識

    在開發WinForm中可能經常遇到Label要顯示的內容太長,但卻不能換行的問題。本文將為大家提供三個解決方法,供大家選擇

 

     

    很多朋友都會在開發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高度擴大而影響其它控件的布局,同時也可以更好地顯示完整的內容。

    三種方法都有它的優缺點,沒有說誰優誰劣,只有最適合的,朋友們不妨試試

 

    

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved