Comment éviter les changements de couleur lorsque le bouton est désactivé ?

Nous avons un projet Windows Forms avec pas mal de boutons FlatStyle.

Lorsque nous désactivons les boutons, les couleurs des boutons sont automatiquement modifiées Frown |:(

Est-il possible de remplacer cela d'une manière ou d'une autre, afin que nous puissions contrôler les couleurs nous-mêmes ?


Solution du problème

Vous devez utiliser l'événement EnabledChanged pour définir la couleur souhaitée. Voici un exemple.

private void Button1_EnabledChanged(object sender, System.EventArgs e)
{
Button1.ForeColor = sender.enabled == false? Color.Blue: Color.Red;
Button1.BackColor = Color.AliceBlue;
}

Utilisez les couleurs souhaitées selon vos besoins.

Vous devez également utiliser l'événement de peinture.

private void Button1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
dynamic btn = (Button)sender;
dynamic drawBrush = new SolidBrush(btn.ForeColor);
dynamic sf = new StringFormat {
Alignment = StringAlignment.Center,
LineAlignment = StringAlignment.Center };
Button1.Text = string.Empty;
e.Graphics.DrawString("Button1", btn.Font, drawBrush, e.ClipRectangle, sf);
drawBrush.Dispose();
sf.Dispose();
}

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"