我想创建一个自定义按钮宽度圆角和一个跟随其形状的白色轮廓。在OnPaint事件中,我添加了以下代码。
Public Class RoundedButton
Protected Overrides Sub OnPaint(e As PaintEventArgs)
MyBase.OnPaint(e)
Dim grPath As GraphicsPath = New GraphicsPath(FillMode.Winding)
grPath.AddArc(0, 0, ClientSize.Height, ClientSize.Height, 90, 180)
grPath.AddLine(grPath.GetLastPoint, New Point(ClientSize.Width - grPath.GetLastPoint.X * 2, 0))
grPath.AddArc(New RectangleF(grPath.GetLastPoint, New Size(ClientSize.Height, ClientSize.Height)), 270, 180)
grPath.CloseFigure()
Me.Region = New Region(grPath)
Dim mypen As New Pen(Color.White, 2)
mypen.Alignment = PenAlignment.Inset
e.Graphics.DrawPath(mypen, grPath)
End Sub
End Class
如果我尝试在表单中使用它,仅当Backcolor属性设置为Transparent时才有效。如果不是,我看不到笔路。 我想改变背景颜色而不会松开笔的圆形白色边框。 我想得到这样的东西:
答案 0 :(得分:1)
对于您想要自定义按钮的所有项目,通常最简单的方法是使用按钮的图片对PictureBox进行曲线处理,然后使用编码语言(VB.NET,C#,C ++)添加点击功能以使动作。
这是一个使用VB.NET的小例子:
Private Sub pictureBox1_Click(sender As Object, e As EventArgs) Handles pictureBox1.Click
Process.start("http://stackoverflow.com")
End Sub
希望我帮助过, 马特