winform如何讓一個控件文字居中,TEXTBOX文字能垂直居中嗎?


 

由於Winform的自帶的滾動條的效果太差,重載滾動條繪制過程有沒有什么太大的意義,於是干脆自己寫了一個可以滾動的控件容器.

在此過程中,需要自己定義一些我常用到的容器內的元素.那么這個元素就用到了垂直和橫向的居中.

winform的Textbox控件是只能水平居中不能垂直居中的,而且他的高度通常都是靠你自己設置的字體的大小來決定的.

有人想到了用Textbox的多行顯示 然后再讓文本居中,但是如果不是文字高度的2的整數倍+1的高度的話 很難達到美觀的效果

於是想到了一個可以約束垂直效果的Label

但是通常Label是沒有辦法設定他的大小的,文字有多少,字體有多大,他就會默認的被撐開

這時我們可以通過Label的一個屬性來設置

如果有經驗的人,可能想的是將Label的Anchor屬性設置為 Top, Bottom, Left, Right 就可以了

但是他不會奏效的,這時我們可以在他的下面放一個TableLayoutPanel

然后設置TabelLayoutPanel的Dock=Fill

然后在TabelLayoutPanel上放置一個Label

把Label的Anchor屬性設置為 Top, Bottom, Left, Right ,然后設置Label的Textalign屬性為MiddleCenter即可

 

最終實現的效果就是這樣了

 

還有一個比較方便的方法 就是用Botton代替 ,直接添加在父容器上,然后Botton的Dock=Fill就可以  再設置一下背景色和樣式  也是不錯的方案

這個方案不需要依賴TableLayoutPanel 而且還有一些按鈕的特性

這個就不用多說.

如果不光是為了顯示 還需要編輯文本的功能 可以自己重寫點擊 按照Label的字體大小 安裝一個假裝透明的Textbox在Label上面

 

由於我只是需要用到展示,做單列選擇的元素使用,所以我暫時不實現外套Textbox的部分.如果切實有需求后續可以補充.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM