由於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的部分.如果切實有需求后續可以補充.