Visual Studio C#Windows Forms ...更改按钮颜色?

Jas*_*rod 5 c# winforms

我有一个表格(见截图):

默认表格外观

正如您所看到的,它是一个非常基本的形式,带有保存按钮.我已对它进行了编程,以便在任何文本字段发生变化时,"保存"按钮会改变颜色,以便明显我没有点击保存并且不要忘记.不幸的是,简单地将按钮的BackColor更改为红色是不够的,因为它的UGLY就像是罪恶.

丑陋的背景未保存

我该怎么做才能将按钮的颜色改为红色,但不是那么难看.如您所见,"BackColor"不会改变整个按钮,只改变内部部件.边框仍旧是老式的透明灰色.

Lar*_*ech 12

一点点LinearGradientBrush可以大大减轻纯红色按钮的粗糙度.

button1.ForeColor = Color.White;

Bitmap bmp = new Bitmap(button1.Width, button1.Height);
using (Graphics g = Graphics.FromImage(bmp)) {
  Rectangle r = new Rectangle(0, 0, bmp.Width, bmp.Height);
  using (LinearGradientBrush br = new LinearGradientBrush(
                                      r,
                                      Color.Red,
                                      Color.DarkRed,
                                      LinearGradientMode.Vertical)) {
      g.FillRectangle(br, r);
    }
  }
Run Code Online (Sandbox Code Playgroud)

然后你可以只将图像分配给按钮的BackgroundImage属性:

  button1.BackgroundImage = bmp;
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述

注意:分配背景图像将丢失按钮的鼠标悬停颜色.