|
|
|
Select your preferred language |
The RoundRect routine
//The good old roundrect routine
private
void RoundRect(Graphics g, Pen p, Rectangle r,
int radius)
{
int
r2=radius*2;
g.DrawLine(p,
r.X + radius, r.Y, r.X + r.Width - radius, r.Y); //top
g.DrawArc(p,
r.X + r.Width - r2, r.Y, radius*2, radius*2, 270, 90);
//top right
g.DrawLine(p,
r.X + r.Width, r.Y + radius, r.X + r.Width, r.Y + r.Height - radius);
//right
g.DrawArc(p,
r.X + r.Width - r2, r.Y + r.Height - r2, radius*2, radius*2,0,90);
//bottom right
g.DrawLine(p,
r.X + r.Width - radius, r.Y + r.Height, r.X + radius, r.Y + r.Height);
//bottom
g.DrawArc(p,
r.X, r.Y + r.Height - r2, r2, r2, 90, 90);
g.DrawLine(p,
r.X, r.Y + r.Height - radius, r.X, r.Y + radius);
g.DrawArc(p,
r.X, r.Y, r2, r2, 180, 90);
}
'The good old roundrect routine
Private
Sub RoundRect(ByVal
g As Graphics, ByVal
p As Pen, ByVal
r As Rectangle, ByVal
radius As Integer)
Dim
r2 As Integer =
radius * 2
g.DrawLine(p,
r.X + radius, r.Y, r.X + r.Width - radius, r.Y) 'top
g.DrawArc(p,
r.X + r.Width - r2, r.Y, radius * 2, radius * 2, 270, 90)
'top right
g.DrawLine(p,
r.X + r.Width, r.Y + radius, r.X + r.Width, r.Y + r.Height - radius)
'right
g.DrawArc(p,
r.X + r.Width - r2, r.Y + r.Height - r2, radius * 2, radius * 2, 0, 90)
'bottom right
g.DrawLine(p,
r.X + r.Width - radius, r.Y + r.Height, r.X + radius, r.Y + r.Height)
'bottom
g.DrawArc(p,
r.X, r.Y + r.Height - r2, r2, r2, 90, 90)
g.DrawLine(p,
r.X, r.Y + r.Height - radius, r.X, r.Y + radius)
g.DrawArc(p,
r.X, r.Y, r2, r2, 180, 90)
End
Sub 'RoundRect
Return to the artcle.
|
|