Zmiana obrazków po najechaniu kliknięciu na przycisk ?

0

Witam! Chciałbym wykorzystać poniższy kod tak, aby zamiast zmiany kolorów przycisków były tam zmieniające się obrazki z katalogu Resources. Kombinuje już od dwóch godzin z "Image" na różne sposoby a i tak nie działa :( Oryginały kod z kolorami wygląda tak:

public partial class Form1 : Form
{
    private static Button menu_last_clicked;
     
    public Form1()
    {
        InitializeComponent();

        foreach (Button button in new Button[] { button1, button2, button3, button4 })
        {
            button.Click += new EventHandler(menuButton_Click);
        }
    }

    private void menuButton_Click(object sender, EventArgs e)
    {
        Button menu_current_clicked = (Button)sender;

        Color color = Color.Transparent; // domyślny gdy niekliknięty
        if (menu_last_clicked != null) menu_last_clicked.BackColor = color;

        switch (menu_current_clicked.Name.ToString())
        {
            case "button1": 
            color = Color.Yellow; 
            break;
            case "button2": 
            color = Color.Red;
            break;
            case "button3": 
            color = Color.Green; 
            break;
            case "button4": 
            color = Color.Blue; 
            break;
        }

        menu_current_clicked.BackColor = color;
        menu_last_clicked = menu_current_clicked;
    }
}

}

Jak to można zrobić ?

2

ok mówisz że kombinujesz od 2 godzin jednak wklejasz kod "orginalny" pokaż co udało ci się wymyśleć, a dzięki temu będziemy wiedzieli jak podpowiedzieć

0

@Kardash:

+1

@Krzysiwek 611:

Przynajmniej by WYPADAŁO zainteresować się jednym statycznym (nie animowanym) obrazkiem. WSZYSTKO jest bdb udokumentowane dla WinForms

Kombinuje już od dwóch godzin z "Image" na różne sposoby a i tak nie działa :(

Dopóki palca nie włożę, nie uwierzę

0

ok mówisz że kombinujesz od 2 godzin jednak wklejasz kod "orginalny" pokaż co udało ci się wymyśleć, a dzięki temu będziemy wiedzieli jak podpowiedzieć

Od razu mówię że wiem, że pewno jest to mocno skopane, ale dopiero startuje w temacie.
Ale OK, np. próbowałem tak przerobić:

namespace buttons5
{
    public partial class Form1 : Form
    {

        private static Button menu_last_clicked;

        public Form1()
        {
            InitializeComponent();


            foreach (Button button in new Button[] { button1, button2, button3, button4 })
            {
                button.Click += new EventHandler(menuButton_Click);
            }
        }

        private void menuButton_Click(object sender, EventArgs e)
        {
            Button menu_current_clicked = (Button)sender;

            Color image = Properties.Resources.red; 
            if (menu_last_clicked != null) menu_last_clicked.BackColor = image;

            switch (menu_current_clicked.Name.ToString())
            {
                case "button1": image = Properties.Resources.greenImage; break;
                case "button2": image = Properties.Resources.blueImage; break;
                case "button3": image = Properties.Resources.redImage; break;
                case "button4": image = Properties.Resources.greenImage; break;

            }

            menu_current_clicked.BackColor = image;
            menu_last_clicked = menu_current_clicked;
        }
    }
}
0

Dobra po tym kodzie nie jestem pewny jak to w ogóle ma działać.
Jeżeli ma się zmienić obrazek w tle przycisku to uzywasz błędnej własciwości bo zamiast BackColor powinieneś użyć Image
Właściwość ta oczekuje na Bitmap a nie Color image = Properties.Resources.red;

Jak poprawnie sobie zaimportujesz obrazek do Resources to nawet ResourcesManager ci podpowie to :)

Proszę filmik podpowie ci jak załadować obrazek

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.