[C#Winform]界面美化Ⅰ窗体的圆角、移动和阴影+自定义最小化和关闭按钮
第一步
新建Windows窗体应用,所有(Name)均使用默认
第二步
Form1 属性FormBorderStyle设置为None
然后打开两个事件
第三步
工具箱里拖两个按钮进来,属性改这些,两个按钮都是
第四步
给两个按钮加上表示最小化和最大化的图标,可以去这里找图标Free Icons & Symbols (flaticon.com)
然后两个按钮都打开Click事件
第五步
复制粘贴Form1的代码
using System; using System.Runtime.InteropServices; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //圆角 [DllImport("kernel32.dll")] public static extern int SetProcessWorkingSetSize(IntPtr process, int minSize, int maxSize); [DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")] private static extern IntPtr CreateRoundRectRgn (int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nWidthEllipse, int nHeightEllipse); //阴影 private const int CS_DropSHADOW = 0x20000; private const int GCL_STYLE = (-26); [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int SetClassLong(IntPtr hwnd, int nIndex, int dwNewLong); [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern int GetClassLong(IntPtr hwnd, int nIndex); //窗体移动 [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); public const int WM_SYSCOMMAND = 0x0112; public const int SC_MOVE = 0xF010; public const int HTCAPTION = 0x0002; private void Form1_Load(object sender, EventArgs e) { //圆角 Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(0, 0, Width, Height, 25, 25)); //阴影 SetClassLong(this.Handle, GCL_STYLE, GetClassLong(this.Handle, GCL_STYLE) | CS_DropSHADOW); } //窗体移动 private void Form1_MouseDown(object sender, MouseEventArgs e) { ReleaseCapture(); SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0); } //最小化按钮 private void button1_Click(object sender, EventArgs e) { WindowState = FormWindowState.Minimized; } //关闭按钮 private void button2_Click(object sender, EventArgs e) { Close(); } } }
演示