在VB.Net中定制任意形状的按钮

发表于:2007-05-25来源:作者:点击数: 标签:任意形状VB.NET思路按钮
思路: 首先,创建一个Point对象数组,为按钮定制多边形。接着创建一个GraphicsPath对象,在其中添加多边形。再将GraphicsPath转化为Region。最后,将按钮的Region属性设置为前面得到的结果。 具体代码: Private Sub Form1_Load(ByVal sender As System.Obj
思路:
    首先,创建一个Point对象数组,为按钮定制多边形。接着创建一个GraphicsPath对象,在其中添加多边形。再将GraphicsPath转化为Region。最后,将按钮的Region属性设置为前面得到的结果。
     
具体代码:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal _
    e As System.EventArgs) Handles MyBase.Load
    ' 定义多边形路径中的点
    Dim pts() As Point = { _
        New Point(5, 15), _
        New Point(35, 15), _
        New Point(35, 5), _
        New Point(55, 25), _
        New Point(35, 45), _
        New Point(35, 35), _
        New Point(5, 35) _
    }

    ' 形成GraphicsPath
    Dim polygon_path As New System.Drawing.Drawing2D.GraphicsPath(FillMode.Winding)
    polygon_path.AddPolygon(pts)

    ' 将GraphicsPath转为Region
    Dim polygon_region = New Region(polygon_path)

    ' 将按钮约束在Region内
    Button1.Region = polygon_region

    ' 让按钮填充Region
    Button1.SetBounds(Button1.Location.X, Button1.Location.Y, pts(3).X + 5, pts(4).Y + 5)
End Sub

原文转自:http://www.ltesting.net