Benutzer mit den meisten Antworten
Button Farbe ändern mit mehreren Klicks

Frage
-
Hallo Community,
leider finde ich dazu keine Antworten im Netz.
Ich würde gerne einen Button bei jedem Klick eine andere Farbe zuweisen.
Die Grundfarbe ist weiß. Bei dem nächsten Klick soll er Grün werden und danach wieder Rot. Bei dem nächsten Klick soll es wieder weiß werden und immer so weiter.
Danach will ich den Wert abfragen.
Weiß soll 0 sein, Grün 2 und Rot 3.
Ich hoffe ihr könnt mir weiterhelfen.
Danke :)
Antworten
-
leider finde ich dazu keine Antworten im Netz.
Wer nicht sucht, kann auch nichts finden.
Ich würde gerne einen Button bei jedem Klick eine andere Farbe zuweisen.
Alleine mit diesem Satz und einem simplen C# dahinter finden sich, mit beliebiger Suchmaschine, zahlreiche Ergebnisse. Unter anderem in diesem Forum: C# / XAML: Button soll Farbe ändern
Bevor ich mein Problem anderen zur Lösungshilfe zutrage, ist es doch wohl angebracht, mich wenigstens selbst ein wenig zu Informieren.
- Gruß Florian
- Bearbeitet Florian Haupt Mittwoch, 28. November 2018 10:41
- Als Antwort vorgeschlagen Holger M. Rößler Donnerstag, 29. November 2018 09:49
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 7. Dezember 2018 08:09
Alle Antworten
-
Hi,
die wichtigste Frage wär erst einmal: Welche Projektart verwendest Du? WinForms? WPF? UWP? ...?
Wenn die Farben festgelegt sind, würde ich mir eine Klasse erstellen, die deine Werte aufnehmen kann, daraus eine List<T> erstellen und dann bei einem Klick das jeweils nächste Element aus der Liste holen und die Farbe zuweisen.
Wie genau man das aber nun macht, hängt eben von der Projektart ab, daher bitte erst die obige Frage beantworten.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport -
Hi,
Hier mal eine Demo, wie man das machen könnte:using System; using System.ComponentModel; using System.Drawing; using System.Runtime.CompilerServices; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form42 : Form, INotifyPropertyChanged { public Form42() { InitializeComponent(); } private Button btn = new Button() { Text = "Drück mich" }; private void Form42_Load(object sender, EventArgs e) { this.Controls.Add(btn); this.btn.Click += Btn_Click; this.btn.DataBindings.Add("BackColor", this, "Farbe"); } private void Btn_Click(object sender, EventArgs e) => SetNextColor(); public void SetNextColor() { farbZustand++; if (farbZustand > Farben.GetUpperBound(0)) farbZustand = 0; OnPropertyChanged(nameof(Farbe)); } private int farbZustand = 0; private Color[] Farben = new Color[] { Color.White, Color.Red, Color.Green }; public Color Farbe { get { return Farben[farbZustand]; } } public event PropertyChangedEventHandler PropertyChanged; internal void OnPropertyChanged([CallerMemberName] string propName = "") => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName)); } }
--
Viele Grüsse
Peter Fleischer (ehem. MVP für Developer Technologies)
Meine Homepage mit Tipps und Tricks- Bearbeitet Peter Fleischer Mittwoch, 28. November 2018 07:13 Code korrigiert
-
leider finde ich dazu keine Antworten im Netz.
Wer nicht sucht, kann auch nichts finden.
Ich würde gerne einen Button bei jedem Klick eine andere Farbe zuweisen.
Alleine mit diesem Satz und einem simplen C# dahinter finden sich, mit beliebiger Suchmaschine, zahlreiche Ergebnisse. Unter anderem in diesem Forum: C# / XAML: Button soll Farbe ändern
Bevor ich mein Problem anderen zur Lösungshilfe zutrage, ist es doch wohl angebracht, mich wenigstens selbst ein wenig zu Informieren.
- Gruß Florian
- Bearbeitet Florian Haupt Mittwoch, 28. November 2018 10:41
- Als Antwort vorgeschlagen Holger M. Rößler Donnerstag, 29. November 2018 09:49
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 7. Dezember 2018 08:09