这个问题已经在这里有一个答案:
- 如何绘制一个圆角矩形的WinForms(.NET)? 5个回答
我使用此代码,使表单没有边框样式:
this.FormBorderStyle = FormBorderStyle.None;
我需要在表格上圆边。
有一个简单的方法是什么? 我该怎么做?
这个问题已经在这里有一个答案:
我使用此代码,使表单没有边框样式:
this.FormBorderStyle = FormBorderStyle.None;
我需要在表格上圆边。
有一个简单的方法是什么? 我该怎么做?
看看这个: http://msdn.microsoft.com/en-us/library/system.windows.forms.control.region.aspx
Form类从Control类继承,所以尝试这样做,你有链接到窗体的区域属性上(和做它当然的形式事件),同一样品:
// This method will change the square button to a circular button by
// creating a new circle-shaped GraphicsPath object and setting it
// to the RoundButton objects region.
private void roundButton_Paint(object sender,
System.Windows.Forms.PaintEventArgs e)
{
System.Drawing.Drawing2D.GraphicsPath buttonPath =
new System.Drawing.Drawing2D.GraphicsPath();
// Set a new rectangle to the same size as the button's
// ClientRectangle property.
System.Drawing.Rectangle newRectangle = roundButton.ClientRectangle;
// Decrease the size of the rectangle.
newRectangle.Inflate(-10, -10);
// Draw the button's border.
e.Graphics.DrawEllipse(System.Drawing.Pens.Black, newRectangle);
// Increase the size of the rectangle to include the border.
newRectangle.Inflate( 1, 1);
// Create a circle within the new rectangle.
buttonPath.AddEllipse(newRectangle);
// Set the button's Region property to the newly created
// circle region.
roundButton.Region = new System.Drawing.Region(buttonPath);
}
我知道这个问题已经回答了,我想补充一个替代的和愚蠢的但并不推荐做法,因为你的问题不限制答案应运而生代码...
TransparencyKey
表单上 PictureBox
,并把它们对应的角落 中提琴!
public static void RoundBorderForm(Form frm)
{
Rectangle Bounds = new Rectangle(0, 0, frm.Width, frm.Height);
int CornerRadius = 20;
System.Drawing.Drawing2D.GraphicsPath path = new System.Drawing.Drawing2D.GraphicsPath();
path.AddArc(Bounds.X, Bounds.Y, CornerRadius, CornerRadius, 180, 90);
path.AddArc(Bounds.X + Bounds.Width - CornerRadius, Bounds.Y, CornerRadius, CornerRadius, 270, 90);
path.AddArc(Bounds.X + Bounds.Width - CornerRadius, Bounds.Y + Bounds.Height - CornerRadius, CornerRadius, CornerRadius, 0, 90);
path.AddArc(Bounds.X, Bounds.Y + Bounds.Height - CornerRadius, CornerRadius, CornerRadius, 90, 90);
path.CloseAllFigures();
frm.Region = new Region(path);
frm.Show();
}