http://cxyzj.any2000.com/web/onepagelm.asp?userid=1075490&lanmuid=7473520
C#创建不规则窗体代码 

     using System; 
        using System.Collections.Generic; 
        using System.ComponentModel; 
        using System.Data; 
        using System.Drawing; 
        using System.Text; 
        using System.Windows.Forms; 
        using System.Runtime.InteropServices; 
        namespace APIDemo 
        { 
            public partial class Form1 : Form 
            { 
                [StructLayout(LayoutKind.Sequential)] 
                private struct POINTAPI 
                { 
                    internal int x; 
                    internal int y; 
                } 
                [DllImport("gdi32.dll")] 
                private static extern IntPtr  CreatePolygonRgn( 
                     ref POINTAPI lpPoint, 
                     int nCount, 
                     int nPolyFillMode); 
                [DllImport("user32.dll")] 
                private static extern IntPtr  SetWindowRgn( 
                     IntPtr  hWnd, 
                     IntPtr  hRgn, 
                     ref Boolean bRedraw); 
                public Form1() 
                { 
                    InitializeComponent(); 
                    //创建不规则窗体 
                    POINTAPI[] poin; 
                    poin =new POINTAPI [5]; 
                    poin[0].x = 90; 
                    poin[0].y = 90; 
                    poin[1].x = this.Width; 
                    poin[1].y = 0; 
                    poin[2].x = Width ; 
                    poin[2].y = this.Height/2; 
                    poin[3].x = Width / 2; 
                    poin[3].y = Height / 2; 
                    poin[4].x = 0; 
                    poin[4].y = Width; 
                    Boolean flag = true; 
                   IntPtr  hRgn= CreatePolygonRgn(ref poin[0],8,1); 
                   SetWindowRgn(this.Handle, hRgn, ref flag ); 
                   this.BackColor = Color.BurlyWood; 
                } 
                //设置窗体显示状态 
                [DllImport("user32.dll")] 
                private static extern int SetWindowPos( 
                     IntPtr  hwnd, 
                     int hWndInsertAfter, 
                     int x, 
                     int y, 
                     int cx, 
                     int cy, 
                     int wFlags); 
                private void Start_Btn_Click(object sender, EventArgs e) 
                {//始终显示在前面 
                    SetWindowPos(this.Handle, -1, 0, 0, 0, 0, 1); 
                } 
                private void button1_Click(object sender, EventArgs e) 
                { 
                    //最小化始终显示在前面 
                    SetWindowPos(this.Handle, -1, 0, 0, 0, 0, 0); 
                } 
            } 
        }  
http://cxyzj.any2000.com/web/onepagelm.asp?userid=1075490&lanmuid=7473520