在 VB6的軟體中,有個很好用的原件 叫 shape. 到了 .Net 下就消失不見了
雖然後來有推個 VisualBasicPowerPacks
但有用過的人都知道,真的很不好用
尤其在排版實不能最上層顯示,常常被其他物件給遮住,跟過去VB6下真的很大的不同
但 .Net 下 還是有其他辦法可以解決,我們可以用 物件的region ,重新定意region 將物件重繪就好了
像拿 label 來重繪,要圓 要扁 要星星 要箭頭,只要畫的出來 就可以顯示出來
首先讓我們 import system.drawing.Drawing2D
我們需要用 GDI+的路徑畫法 來畫出我們要的形狀
首先讓我們來畫個圓
在Form 表單上建立一個 label 取名 labCircle
Dim aCircle As New Drawing2D.GraphicsPath '設定一個新路徑
aCircle.AddEllipse(New Rectangle(0, 0, 20, 20)) '在路徑中加個圓
labCircle.Region = New Region(aCircle) '設定 label labcircle.region
labCircle.BackColor = Color.Black '設定 顏色 黑色
偵錯
就可以看到 剛剛的Labe 就變成黑色的圓
ps. 這個圓 不會隨著Label 變大變小 但可以讓物件跟畫出來的Region設定的大小一樣
相關 可參考
http://vb-helper.com/howto_net_shaped_button.html
當然 有大量使用需求的人 可以設成 Usercontrol
而且使用 sizechanged 這個事件
重新設定 region 就可以跟隨著大小改變了
華麗版的圖像設定
http://www.codeproject.com/KB/buttons/netimagebutton.aspx