Entwickler-Ecke
WinForms - NumericUpDown
Freefly85 - Mi 09.03.11 16:06
Titel: NumericUpDown
Hallo
Ich habe ein GUI erstellt und verwende darin sogenannte NumericUpDown (Windows.Forms.NumericUpDown).
Ein Event wird ausgelöst wenn der Up bzw. Down-Pfeil betätigt wird und die Zahl darin incrementiert oder decrementiert wird.
Nun egal ob ich den Pfeil nach oben oder der Pfeil nach unten drücke, es wird immer der SELBE Event ausgelöst.
Wie kann ich unterscheiden was passiert wenn ich den Pfeil nach oben oder den Pfeil nach unten drücke?
http://www.c-sharpcorner.com/UploadFile/mahesh/1755/Images/NumericUpDownImg1.jpg
Ich freue mich auf eine Antwort
Gruss
Kevin
Th69 - Mi 09.03.11 16:10
Hi,
du meinst sicherlich das NumericUpDown.ValueChanged-Ereignis?
Eine Möglichkeit wäre, daß du dir den aktuellen Wert in einer Membervariablen speicherst und im ValueChanged-Ereignis dann damit vergleichst (und nachher wieder gleichsetzt).
Für was benötigst du denn die Unterscheidung?
Freefly85 - Mi 09.03.11 16:26
Th69 hat folgendes geschrieben : |
Hi,
du meinst sicherlich das NumericUpDown.ValueChanged-Ereignis?
Eine Möglichkeit wäre, daß du dir den aktuellen Wert in einer Membervariablen speicherst und im ValueChanged-Ereignis dann damit vergleichst (und nachher wieder gleichsetzt).
Für was benötigst du denn die Unterscheidung? |
Ja genau ich meine das ValueChanged-Ereignis. Ich möchte damit einen Motor steuern. Wird der Wert vom NumericUpDown positiv dann fährt der Motor nach rechts, wird er negativ fährt er nach links. So ganz allgemein erklärt...
Nur auf das Vorzeichen des Wertes im NumericUpDown zu achten reicht nicht. Wenn ich von Position -20 auf -15 möchte, muss der Motor vorwärts statt rückwärts fahren (was er macht wenn der Wert decrementiert wird).
Gruss
Kevin
3marci - Mi 09.03.11 18:24
Aber wenn ich von -20 auf -15 gehe, wird der Wert größer (inkrementiert) und nicht kleiner (-20 + 5 = -15).
Und so wie du das Beschreibst fände ich es sinnvoller das ganze mit zwei Buttons zu lösen.
Es sei denn der Wert steuert auch die Geschwindigkeit des Motors... naja, das ist aber nur meine Meinung.
Hier ist meine Lösung so wie du das haben wolltest... habs nicht getestet aber sollte funktionieren:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| int i = NumericUpDown1.Value;
private void NumericUpDown1_ValueChanged() { if(NumericUpDown1.Value > i) { i = NumericUpDown1.Value; } else { i = NumericUpDown1.Value; } } |
Freefly85 - Mi 09.03.11 23:31
Vielen Dank!
Ich habe nun den Lösungsansatz von "3marci" verwendet.
Nun noch eine kleine Zusatzfrage:
Wie deaktiviere ich einen "NumericUpDown"?
NumericUpDown.?? = false;
So damit keine Werte sowie auch die Buttons inaktiv sind.
Danke und Gruss
Kevin
3marci - Mi 09.03.11 23:39
Bitte bitte.
Alle Controls lassen sich mit .enabled aktivieren und deaktivieren. Sprich:
NumericUpDown1.Enabled = false;
Freefly85 - Do 10.03.11 17:39
Hallo
Es ist noch eine weitere Frage aufgetaucht, welche sich allerdings um den Windows.Forms.RadioButton dreht.
Ich dachte mir, dass ich nicht extra ein neues Thema erröffne...
Zur Zeit kann ich den RadioButton nur aktivieren, allerdings nicht mehr deaktivieren.
RadioButton1.Checked = false; kann er deaktiviert werden.
Aber muss man hier wieder eine Hilfsvariable verwenden oder gibts eine einfachere Lösung?
Gruss
kevin
3marci - Do 10.03.11 19:26
Du verwechselst da was...
RadioButton1.Checked -> Hier kann man den Wert lesen oder setzten ob der RadioButton ausgewählt ist oder nicht.
RadioButton1.Enabled -> Das hier ist zum aktivieren und deaktivieren.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!