在Windows窗体中,当单击按钮后,按钮会显示一个黑色轮廓,这是默认的焦点框效果。如果希望去除这个黑色轮廓,可以通过以下几种方式实现:
FlatStyle
属性将按钮设置为Flat
或Popup
,这样按钮在获得焦点时就不会显示黑色轮廓。代码示例:button1.FlatStyle = FlatStyle.Flat; // 或者 FlatStyle.Popup
public class MyButton : Button
{
protected override void OnPaint(PaintEventArgs pevent)
{
base.OnPaint(pevent);
// 在这里自定义按钮的绘制逻辑,不绘制黑色轮廓
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Application.AddMessageFilter(new ButtonFocusMessageFilter());
}
}
public class ButtonFocusMessageFilter : IMessageFilter
{
private const int WM_SETFOCUS = 0x0007;
public bool PreFilterMessage(ref Message m)
{
if (m.Msg == WM_SETFOCUS)
{
Control focusedControl = Control.FromHandle(m.WParam);
if (focusedControl is Button)
{
// 按钮获得焦点时,取消焦点,去除黑色轮廓
focusedControl.Parent.Focus();
return true;
}
}
return false;
}
}
以上是在Windows窗体中去除按钮黑色轮廓的几种方法,根据具体情况选择适合的方式进行实现。
领取专属 10元无门槛券
手把手带您无忧上云