首页 > 代码库 > 章鱼哥出品—VB.NET 如何绘制圆角矩形,并适应窗体大小
章鱼哥出品—VB.NET 如何绘制圆角矩形,并适应窗体大小
Public Class Form1 '********************************************************************* '作者:章鱼哥,QQ:3107073263 群:309816713 '如有疑问或好的建议请联系我,大家一起进步 '********************************************************************* '绘制圆角矩形函数 Private Function GetRoundedRectPath(ByVal rect As Rectangle, ByVal radius As Integer) As System.Drawing.Drawing2D.GraphicsPath rect.Offset(-1, -1) Dim RoundRect As New Rectangle(rect.Location, New Size(radius - 1, radius - 1)) Dim path As New System.Drawing.Drawing2D.GraphicsPath path.AddArc(RoundRect, 180, 90) '左上角 RoundRect.X = rect.Right - radius '右上角 path.AddArc(RoundRect, 270, 90) RoundRect.Y = rect.Bottom - radius '右下角 path.AddArc(RoundRect, 0, 90) RoundRect.X = rect.Left '左下角 path.AddArc(RoundRect, 90, 90) path.CloseFigure() Return path End Function '绘制矩形 Private Sub DrawingRect() Dim g As Graphics = Me.CreateGraphics '定义一个画布 Dim Pen As New Pen(Brushes.DarkRed, 2) '定义一个画笔 Dim Hei As Integer = Me.Height Dim Wid As Integer = Me.Width '矩形的位置和长宽随着窗体的变化而改变 Dim Rec As New Rectangle(Int(Wid / 5), Int(Hei / 5), Int(Wid / 2), Int(Hei / 2)) ' g.DrawRectangle(Pen, Rec) '清楚现有的矩形 g.Clear(Me.BackColor) g.DrawPath(Pen, GetRoundedRectPath(Rec, 30)) End Sub Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint DrawingRect() End Sub Private Sub Form1_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged Me.Invalidate() '此函数可引发Paint事件 End Sub End Class
原窗体绘制:
缩小窗体时:
章鱼哥出品—VB.NET 如何绘制圆角矩形,并适应窗体大小
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。