C#(winform)为button添加背景图片,并去掉各种边框
1.既然是添加背景图片
所以这里应该使用 Button.BackgroudImage = "" ;来设置图片
而不应该使用 Button.Image = "";
因为使用BackgroudImage来设置背景图片,我们还可以使用
BackgroundImageLayout来调节图片,让图片更好的显示在button上
通常使用:
this.btnReset.BackgroundImage = global::Test.Properties.Resources.btn_reset_out;//设置图片的路径
this.btnReset.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;//设置图片的显示模式,Stretch表示填满button,如果图片不够button大,就会拉伸图片
2.然后你就会看到尽管添加了背景图片,同时还设置好了拉伸图片,但是效果还是强差人意

怎么会有个边框啊,这得有多难看啊,既然有边框,那就取消边框吧

不过,没找到button的Border属性,但是找到了 FlatStyle属性(决定控件外观的一个属性),
不管了,先逐个试试看有什么变化,最后Flat感觉比较符合我们的口味,

那个给人感觉很厚的边框没有了,但是看起来仍然很不舒服,怎么还有一点白色的框框啊

刚才一直找不到的Border属性,原来是藏在了 FlatAppearance下面了,直接BorderSize改成 0
效果马上变成了如下:

呵呵,那讨人厌的白色框框也不见了,整体看起来感觉舒服了好多啊,
不过细心的你肯定也看到了,因为这个按钮的背景图片是圆角的,那四个边角上居然还有
那冤魂不散的白色边框!!!!,运行起来的效果更明显,特别是当鼠标移进移出时:
and 
左图是鼠标移入前,看起来很舒服;而右图是鼠标移进时,擦,四个边角,这太明显了,强迫症的我根本不能接受嘛!
从一开始到现在折腾了那么久,眼看就要搞定的时候,居然还有这么一个小难题····难不成是微软的bug???
最后发现还是我错了,解决的方法如下:

还是在刚刚那个 FlatAppearance属性,不过这次改的是 MouseDownBackColor,MouseOverBackColor 都设置为 Transparent(透明色)
当然最后还要设置一下
this.btnReset.BackColor = System.Drawing.Color.Transparent;
补充:
当最后你运行时,你会发现当点击button时,还是会出现一个白色的边框,这个据说是button失去焦点时的表现,
这货还真是对我依依不舍,吃了几十片毓婷都打不掉啊,如图:

很恶心,最后的解决方法还是修改那个属性,FlatAppearance:

就是BorderColor惹的货,一开始我打算把它改成跟按钮一样的颜色就算了,这样大概能够浑水摸鱼,或者滥竽充充数
然后一个不小心,敲了一个 0 进去(你只需要输入一个零就可以了,它会自动生成四个的了),哈哈,发现问题居然解决了。···汗
C#(winform)为button添加背景图片,并去掉各种边框的更多相关文章
- C#(winform)为button添加背景图片
1.既然是添加背景图片 所以这里应该使用 Button.BackgroudImage = "" ;来设置图片 而不应该使用 Button.Image = "" ...
- WPF之路二: button添加背景图片点击后图片闪烁问题
在为button添加背景图片的时候,点击后发现图片闪烁,我们仔细观察,其实Button不仅仅只是在点击后会闪烁,在其通过点击或按Tab键获得焦点后都会闪烁,而通过点击其他按钮或通过按Tab键让Butt ...
- WPF学习笔记——为BUTTON添加背景图片
首先要肯定,代码: <Style x:Key="UserItemButton" TargetType="Button"> <Setter Pr ...
- WinForm界面设计-Button添加背景图去边框
转自:https://www.cnblogs.com/tommy-huang/p/4283538.html 1.既然是添加背景图片 所以这里应该使用 Button.BackgroudImage = & ...
- Java怎么添加背景图片
首先,导入相关的包: import java.awt.BorderLayout; import java.awt.Container; import javax.swing.ImageIcon; im ...
- 如何在使用itext生成pdf文档时给文档添加背景图片
这个问题我在网上搜了很久,没有找到什么解决方案,需求其实很简单,就是添加背景图片.在解决这个问题之前,我们需要了解什么是背景图片?背景图片就是位于文档最底层的图片,文字和其他内容可以浮在它的上面.这又 ...
- iOS 中 为UIView添加背景图片
创建UIImage的方法有两种: UIImage *image = [UIImageimageNamed:@"image.jpg"];//这种不释放内存,要缓存 NSString ...
- [BS-29] 给UIView添加背景图片
给UIView添加背景图片 //默认情况下只能设置UIView的背景颜色,不能给UIView设置背景图片,但通过绘图知识可以做到 - (void)drawRect:(CGRect)rect { [su ...
- netbeans中给jpanl添加背景图片制定代码的理解——匿名内部类继承父类
此测试是为了仿照在netbeans中给jpanl添加背景图片的制定代码的执行过程 在JpDemo中定义了个Car类的数据类型,但在给其赋值对象时使用了匿名内部类,继承了Car类,是其子类,并重写了父类 ...
随机推荐
- Centos 7 安装记录
0.安装中选择最小安装 1.centos7安装图形界面 之前转载过一篇“centos6安装图形界面”的文章,地址见http://my.oschina.net/u/1169607/blog/335304 ...
- stringBuilder类的一些用法
对String对象进行处理的时候比如拼接.截取,会在内存中新建很多字符串对象.为了减少内存开支,可以使用StringBuilder类型. 创建StringBuiler实例: 用构造函数直接创建: St ...
- nginx 托管.net core的service文件
在 /etc/systemd/system/ 中新建一个服务文件site1.service vim /etc/systemd/system/site1.service [Unit] Descripti ...
- Oracle.DataAccess.dll方式操作oracle数据库
Oracle.DataAccess.dll方式操作oracle数据库 一.查询语句: using (OracleConnection conn = new OracleConnection(Syste ...
- HTML5 Communication API
本文探讨用于构建实时(real-time)跨域(cross-origin)通信的两个重要模块:跨文档消息通讯和XMLHttpRequest Level 2.通过它们,我们可以构建引人注目的Web应用, ...
- Android 异步网络图片加载
ListView异步加载图片 http://www.eoeandroid.com/forum.php?mod=viewthread&tid=161586 [Android分享] ListVie ...
- [CISCO] VLAN、TRUNK 和 VTP 简介
VLAN.TRUNK 和 VTP 简介 VLAN 如图,虚拟局域网 VLAN ( Virtual LAN ) 是交换机端口的逻辑组合. VLAN 工作在 OSI 的第 2 层(数据链路层),一个 VL ...
- python中mysql的存储
1. 连接mysql import pymysql db = pymysql.connect(host=', port=3306) cursor = db.cursor() cursor.execut ...
- 自适应大邻域搜索代码系列之(1) - 使用ALNS代码框架求解TSP问题
前言 上次出了邻域搜索的各种概念科普,尤其是LNS和ALNS的具体过程更是描述得一清二楚.不知道你萌都懂了吗?小编相信大家早就get到啦.不过有个别不愿意透露姓名的热心网友表示上次没有代码,遂不过瘾啊 ...
- Linux和Windows数据同步
正在做一个小项目,关于Linux和Windows数据同步,新知识很兴奋,比赛很有信心,加油吧少年 项目进行中:今晚实验室包宿开整.