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

Comment signer la connexion OKEx API version 5 avec websockets ?

La fonction GCP Cloud pour écrire des données dans BigQuery s'exécute avec succès, mais les données n'apparaissent pas dans la table BigQuery

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