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

Le shell POSIX (sh) redirige stderr vers stdout et capture stderr et stdout dans des variables