好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

WinForm绘制圆角的方法

本文实例讲述了WinForm绘制圆角的方法。分享给大家供大家参考。具体实现方法如下:

?

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;

using System.Drawing.Drawing2D;

namespace AppStartSample

{

  public partial class Form3 : Form

  {

   public Form3()

   {

    InitializeComponent();

   }

   private void button1_Click( object sender, EventArgs e)

   {

   }

   private void button2_Click( object sender, EventArgs e)

   {

   }

   public void SetWindowRegion()

   {

    System.Drawing.Drawing2D.GraphicsPath FormPath;

    FormPath = new System.Drawing.Drawing2D.GraphicsPath();

    Rectangle rect = new Rectangle(0, 22, this .Width, this .Height - 22); //

    FormPath = GetRoundedRectPath(rect, 30);

    this .Region = new Region(FormPath);

   }

   private GraphicsPath GetRoundedRectPath(Rectangle rect, int radius)

   {

    int diameter = radius;

    Rectangle arcRect = new Rectangle(rect.Location, new Size(diameter, diameter));

    GraphicsPath path = new GraphicsPath();

    // 左上角 

    path.AddArc(arcRect, 180, 90);

    // 右上角 

    arcRect.X = rect.Right - diameter;

    path.AddArc(arcRect, 270, 90);

    // 右下角 

    arcRect.Y = rect.Bottom - 0;

    path.AddArc(arcRect, 0, 90);

    // 左下角 

    arcRect.X = rect.Left;

    path.AddArc(arcRect, 90, 90);

    path.CloseFigure();

    return path;

   }

   protected override void OnResize(System.EventArgs e)

   {

    this .Region = null ;

    SetWindowRegion();

   }

  }

}

希望本文所述对大家的C#程序设计有所帮助。

dy("nrwz");

查看更多关于WinForm绘制圆角的方法的详细内容...

  阅读:81次