C#_Winform - 去掉按钮选择黑色边框

文章讲述了开发者在开发过程中遇到按钮选中时出现黑色边框的问题,通过查找发现可以使用反射调用`SetStyle(ControlStyles.Selectable,false)`来解决。作者提到非自定义控件需在构造函数中添加这一句,最终成功消除边框。
摘要由CSDN通过智能技术生成

开发过程中遇到按钮被选中时有黑色边框,如下:

查资料找了好久终于找到一个解决方案,但是该方案使用的是反射,比较麻烦。查到的方法如下:

using System.Reflection

Private void SetButton(Button button) {
    MethodInfo methodinfo = button.GetType().GetMethod("SetStyle", BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod);
    methodinfo.Invoke(button,BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.InvokeMethod, null, new object[] {ControlStyles.Selectable, false}, Application.CurrentCulture);
}

以上方法来自以下文章,非常感谢这位大哥。C#无焦点按钮(非自定义控件)-CSDN博客文章浏览阅读4k次,点赞5次,收藏10次。C#无焦点按钮(非自定义控件)。https://blog.csdn.net/all77889900/article/details/5832415


但是我仔细一看,这不就是 buttonObject.SetStyle(ControlStyles.Selectable, false); 么?然后我在我自定义的按钮的构造函数中加了这一句(非自定义组件只能使用转载文章中的反射的方法调用此方法,因为该方法定义是 protected):

// 去掉黑框
this.SetStyle(ControlStyles.Selectable, false);

然后问题完美解决,效果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值