c# winforms button

Restaurar C#Windows Forms backcolor



winforms button (4)

Esto restaurará el aspecto predeterminado (probado en Windows 7, .net 3.5):

btn.BackColor = System.Drawing.Color.Transparent;

Tengo un botón en un formulario de Windows Forms para el cual cambio el color de fondo a Color.Yellow cuando se hace clic en él. Cuando vuelva a hacer clic, quiero restaurarlo a la apariencia predeterminada original.

El color de fondo predeterminado es SystemColor.Control .

Cuando se hace clic en el botón la primera vez, lo único que cambio es la

btn.Text = "ABC"; btn.BackColor = Color.Yellow;

Cuando se hace clic nuevamente, lo hago

btn.BackColor = SystemColors.Control

El nuevo fondo no tiene el mismo sombreado que originalmente antes de cualquier clic. Originalmente, el botón tenía un fondo que no era un color sólido, sino dos tonos de gris ligeramente diferentes. El color final termina siendo un tono sólido de gris.

Estoy probando esto en una máquina con Windows 7.

Captura de pantalla:


Intente utilizar btn.ResetBackColor() lugar de configurar manualmente el BackColor .


Prueba esto:

if (button1.BackColor == Color.Yellow) { button1.BackColor = SystemColors.Control; button1.UseVisualStyleBackColor = true; } else { button1.BackColor = Color.Yellow; }


También debe establecer UseVisualStyleBackColor en verdadero. Esta propiedad se establece en falso cuando cambia el color de fondo.