C#实现圆角窗体效果
在窗体的Paint事件中写上如下代码
private void Form1_Paint(object sender, PaintEventArgs e) { //圆角窗体、只有Paint事件代码 Form form = ((Form)sender); List<Point> list = new List<Point>(); int width = form.Width; int height = form.Height; //左上 list.Add(new Point(0, 5)); list.Add(new Point(1, 5)); list.Add(new Point(1, 3)); list.Add(new Point(2, 3)); list.Add(new Point(2, 2)); list.Add(new Point(3, 2)); list.Add(new Point(3, 1)); list.Add(new Point(5, 1)); list.Add(new Point(5, 0)); //右上 list.Add(new Point(width - 5, 0)); list.Add(new Point(width - 5, 1)); list.Add(new Point(width - 3, 1)); list.Add(new Point(width - 3, 2)); list.Add(new Point(width - 2, 2)); list.Add(new Point(width - 2, 3)); list.Add(new Point(width - 1, 3)); list.Add(new Point(width - 1, 5)); list.Add(new Point(width - 0, 5)); //右下 list.Add(new Point(width - 0, height - 5)); list.Add(new Point(width - 1, height - 5)); list.Add(new Point(width - 1, height - 3)); list.Add(new Point(width - 2, height - 3)); list.Add(new Point(width - 2, height - 2)); list.Add(new Point(width - 3, height - 2)); list.Add(new Point(width - 3, height - 1)); list.Add(new Point(width - 5, height - 1)); list.Add(new Point(width - 5, height - 0)); //左下 list.Add(new Point(5, height - 0)); list.Add(new Point(5, height - 1)); list.Add(new Point(3, height - 1)); list.Add(new Point(3, height - 2)); list.Add(new Point(2, height - 2)); list.Add(new Point(2, height - 3)); list.Add(new Point(1, height - 3)); list.Add(new Point(1, height - 5)); list.Add(new Point(0, height - 5)); Point[] points = list.ToArray(); GraphicsPath shape = new GraphicsPath(); shape.AddPolygon(points); //将窗体的显示区域设为GraphicsPath的实例 form.Region = new System.Drawing.Region(shape); }
效果截图