在winform下,如何改变按钮的字体颜色?

kinlin 2011-12-08 03:31:20
按钮的FlatStyle = SyStem ,但我发现按钮的字体颜色无法修改,我想问如何在按钮的FlatStyle = SyStem的情况下可以改变按钮颜色,还请高手赐教,谢谢
...全文
1125 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
shaofei830927 2011-12-21
  • 打赏
  • 举报
回复
你可以尝试开源的主题dll 但不建议你这么做 这样做才叫被动

上色贴图之上可以保证主题改变的时候 软件的外观不会改变
如果需要改变 那么 就多写几种主题的控件

另外你需要注意 系统主题改变的时候 窗体布局也会跟着稍有改变 比如tabcontrol控件 如果标签在两侧的话
在window经典风格下使用正常 在 xp主题下 文字会不显示(被挤掉了) 除非设置标签高度再大一些 才能正常

如果软件要求高的话 就多写几套主题 如果 没有那么高的要求 就用系统自带 或者 固定一套自定义控件

按钮在 System状态下 会有3D效果的黑色边线 不重绘去不掉 在平面状态下 会有 2D效果的边线 也是非重绘去不掉
kinlin 2011-12-09
  • 打赏
  • 举报
回复
上色?贴图片?太被动了吧,能做的一样吗?不同风格下图片也随着变?
流浪的青春 2011-12-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 kinlin 的回复:]
我这么做,原因是我的窗体背景是有颜色的,但如果我把桌面主题改成2000风格,那么按钮的背景色就和桌面一样了,也就是说按钮变成透明了,所以我要把FlatStyle 设为SyStem ,但字体颜色的问题又出现了

按钮重绘到是一种办法
[/Quote]

不太明白,为什么【但如果我把桌面主题改成2000风格,那么按钮的背景色就和桌面一样了,也就是说按钮变成透明了,】就一定【要把FlatStyle 设为SyStem 】呢,为了解决按钮变透明,可以有很多办法啊,比较条件背景色,贴图片等等。。。。
kinlin 2011-12-09
  • 打赏
  • 举报
回复
我这么做,原因是我的窗体背景是有颜色的,但如果我把桌面主题改成2000风格,那么按钮的背景色就和桌面一样了,也就是说按钮变成透明了,所以我要把FlatStyle 设为SyStem ,但字体颜色的问题又出现了

按钮重绘到是一种办法
MKing0412 2011-12-08
  • 打赏
  • 举报
回复
加单色的 BackgroundImage
绿领巾童鞋 2011-12-08
  • 打赏
  • 举报
回复
贴图片也是一种方法,或者按钮重绘
echoya35 2011-12-08
  • 打赏
  • 举报
回复
FlatStyle 枚举

Flat 该控件以平面显示。
Popup 该控件以平面显示,直到鼠标指针移动到该控件为止,此时该控件外观为三维。
Standard 该控件外观为三维。
System 该控件的外观是由用户的操作系统决定的。

如果使用 System 样式,则控件的外观由用户的操作系统决定,并且忽略以下属性值: Control .BackgroundImage 、 ImageAlign、 Image、 ImageIndex、 ImageList 和 TextAlign。 此外,对于按钮控件,还将忽略 Control .BackColor 属性。 如果支持,用户可以通过调整其操作系统的外观设置来更改控件的外观。

MSDN的解释


private void Form1_Load(object sender, EventArgs e)
{
//FlatStyle为System时
// 设置按钮的前景色 即字体颜色 无效
button1.ForeColor = Color.Red;

//此时按钮会出现蓝色内框
button1.ForeColor = BackColor;
}


希望对你有帮助
错了莫怪我 2011-12-08
  • 打赏
  • 举报
回复
按钮属性有你找找啊!我也不太懂啊。应该是修改前景色。不知道对不对

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧