buttonBubufx.FlatStyle = FlatStyle.Flat; buttonBubufx.BackColor = Color.SkyBlue; buttonBubufx.FlatAppearance.BorderColor = buttonBubufx.BackColor;
二、重绘,设置按钮的Region
private static int WM_NCPAINT = 0x0085; private static int WM_ERASEBKGND = 0x0014; private static int WM_PAINT = 0x000F; [DllImport("user32.dll")] static extern IntPtr GetDCEx(IntPtr hwnd, IntPtr hrgnclip, uint fdwOptions); [DllImport("user32.dll")] static extern int ReleaseDC(IntPtr hwnd, IntPtr hDC); protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == WM_NCPAINT || m.Msg == WM_ERASEBKGND || m.Msg == WM_PAINT) { IntPtr hdc = GetDCEx(m.HWnd, (IntPtr)1, 1 | 0x0020); if (hdc != IntPtr.Zero) { Graphics graphics = Graphics.FromHdc(hdc); Color borderColor = Color.HotPink; Rectangle rectangle = new Rectangle(textBox1.Location.X, textBox1.Location.Y + (25), textBox1.Width, textBox1.Height); ControlPaint.DrawBorder(graphics, rectangle, borderColor, ButtonBorderStyle.Solid); m.Result = (IntPtr)1; ReleaseDC(m.HWnd, hdc); } } }