winform设置边框颜色不像webform那么简单,可以通过设置FlatAppearance,也可以通过重绘实现。
一、设置按钮本身属性
1
2
3 |
buttonBubufx.FlatStyle = FlatStyle.Flat; buttonBubufx.BackColor = Color.SkyBlue; buttonBubufx.FlatAppearance.BorderColor = buttonBubufx.BackColor; |
二、重绘,设置按钮的Region
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 |
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); } } } |
原帖地址:winform设置button的边框颜色,或取消边框颜色,不显示边框。
bubufx提供,禁止转载。
winform设置button的边框颜色,或取消边框颜色,不显示边框
原文:http://www.cnblogs.com/weekzero/p/3514964.html