Comment ajouter une image ou une image d'arrière-plan à un bouton personnalisé dans winforms ?

Yildirim Ozkal

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.

Yildirim Ozkal

" 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.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    Comment exécuter un fichier python avec des droits d'administrateur dans pycharm

  2. 2

    comment obtenir un objet de requête dans les tests unitaires de django?

  3. 3

    mongo kafka connect source

  4. 4

    Vérifier la longueur du nombre à partir du message, puis utiliser la valeur dans l'instruction

  5. 5

    comment convertir une chaîne en un tuple dateutil jour de la semaine sans utiliser eval

  6. 6

    Comment ajouter un texte dans un texte Python/Tkinter

  7. 7

    Aide de variable de débogage pprint jinja2

  8. 8

    Dans les modèles Hugo, comment vérifier la longueur du tableau de fichiers JSON?

  9. 9

    Impression de la longueur du chemin le plus court dans le labyrinthe

  10. 10

    Exécuter la requête externe pour chaque date obtenue à partir de la requête interne

  11. 11

    Recherche de dicton Jinja2 à l'aide d'une clé variable

  12. 12

    Algorithme: diviser de manière optimale une chaîne en 3 sous-chaînes

  13. 13

    Comment obtenir l'intégration contextuelle d'une phrase dans une phrase à l'aide de BERT ?

  14. 14

    définir une propriété pour chaque nœud dans neo4j

  15. 15

    Pourquoi cette requête Java échoue-t-elle? renvoyer 0 quand il y a des résultats

  16. 16

    Comment changer le navigateur par défaut en Microsoft Edge pour Jupyter Notebook sous Windows 10 ?

  17. 17

    Laravel 8: Attempt to read property "id" on null

  18. 18

    Comment obtenir tous les champs d'un objet (y compris sa superclasse), à l'aide de l'API Mirrors de Dart?

  19. 19

    Référencement des assemblys de structure .net 4.7 dans la solution .net core 2

  20. 20

    Microsoft.WebApplication.targets

  21. 21

    obtenir le nombre de marqueur affiché sur la carte

chaudétiquette

Archive