einfachen eigenen Buton erstellen mit Bildern



  • Hallo!

    Habe aus einem UserControl einen Button erstellt. (Da ich es leider über den Button nicht geschafft habe ein Bild einzubinden und den Rahmen auszublenden.)

    Dazu verwende ich zwei Bilder (gedrückt und nicht gedrückt).Das eine (nicht gedrückt) ist einfach das BackgroundImage. Zusätzlich habe ich noch ein backgroundImage2 angelegt für den Fall wo der Button gerade gedrückt ist.
    Dieses kann so wie das normale BackgroundImage im Visual Studio zugewiesen werden (siehe hier). Nur aus irgendeinem Grund funktioniert es nicht. BackgroundImage2 ist immer Null.

    public partial class ImageButton : UserControl
        {
            private Bitmap _normal;
            private Bitmap _down;
    
            [CategoryAttribute("Darstellung"), DescriptionAttribute("Image for the MouseDown Event")]
            public virtual Image BackgroundImage2 { get; set; }
    
            public ImageButton()
            {
                InitializeComponent();
                System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ImageButton));
                this.BackgroundImage2 = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage2")));
    
                _normal = BackgroundImage as Bitmap;            
                _down = BackgroundImage2 as Bitmap;
                this.Size = _normal.Size;
            }
    
            private void ImageButton_MouseDown(object sender, MouseEventArgs e)
            {
                this.BackgroundImage = _down;
            }
    
            private void ImageButton_MouseUp(object sender, MouseEventArgs e)
            {
                this.BackgroundImage = _normal;
            }
    
        }
    

    Da ich einfach nur den Code kopiert habe der auch im normalen UserControl steht für das laden des backgroundImages frage ich mich warum es bei mir nicht funktioniert?
    Außerdem habe ich noch diese Seite: http://www.sellsbrothers.com/writing/ResourcesAndWinForms.htm gefunden. Was meine Vorgehensweise mehr oder weniger bestätigt.



  • Wenn du doch einen Button verwenden willst:

    ➡ FlatStyle = Flat
    ➡ FlatAppearance.BorderSize = 0
    ➡ Text = ""
    ➡ ImageList = deine Image Liste
    ➡ ImageIndex = wechselt je nach Zustand


Anmelden zum Antworten