Je suis assez nouveau dans la création de contrôles personnalisés. J'ai essayé de créer un bouton personnalisé mais je ne peux pas ajouter d'image d'arrière-plan ou d'image à mon bouton dans les propriétés. Je ne sais pas pourquoi. J'ai recherché à ce sujet, je n'ai pas trouvé de solution en vous demandant maintenant.
Voici mes codes :
using System;
using System.Drawing;
using System.Windows.Forms;
namespace exampleApp.GUI
{
class ThemedButton : Button
{
public ThemedButton()
{
BackColor = buttonDefaultBackColor;
FlatStyle = FlatStyle.Flat;
ForeColor = buttonDefaultForeColor;
Padding = new Padding(5, 2, 5, 2);
}
protected override void OnPaint(PaintEventArgs args)
{
args.Graphics.FillRectangle(new SolidBrush(BackColor), 0, 0, this.Width, this.Height);
TextFormatFlags flags = TextFormatFlags.HorizontalCenter | TextFormatFlags.VerticalCenter;
TextRenderer.DrawText(args.Graphics, Text, Font, new Point(Width + 3, this.Height / 2), ForeColor, flags);
}
protected override void OnMouseEnter(EventArgs e)
{
base.OnMouseEnter(e);
BackColor = buttonMouseEnterColor;
ForeColor = buttonMouseEnterForeColor;
}
protected override void OnMouseLeave(EventArgs e)
{
base.OnMouseLeave(e);
BackColor = buttonDefaultBackColor;
ForeColor = buttonDefaultForeColor;
}
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
BackColor = buttuonMouseDownBackColor;
ForeColor = buttonMouseEnterForeColor;
}
protected override void OnMouseUp(MouseEventArgs e)
{
base.OnMouseUp(e);
BackColor = Color.FromArgb(250, 133, 7);
ForeColor = buttonMouseEnterForeColor;
}
//Color Settings
private Color buttonDefaultBackColor = Color.FromArgb(245, 153, 17);
private Color buttonDefaultForeColor = Color.Black;
private Color buttonMouseEnterColor = Color.FromArgb(250, 133, 7);
private Color buttonMouseEnterForeColor = Color.White;
private Color buttuonMouseDownBackColor = Color.FromArgb(250, 84, 7);
}
}
j'ai essayé cette solution : le bouton WinForms personnalisé ne change pas l'image ?
mais ne fonctionne toujours pas. Pouvez-vous m'aider s'il vous plaît ? Je veux apprendre à concevoir un bouton personnalisé de manière appropriée.
" Vous peignez n'importe quelle image: args.Graphics.FillRectangle(new SolidBrush(BackColor), 0, 0, this.Width, this.Height); " c'est la réponse qui fonctionne grâce à TaW
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots