Autor Beitrag
Freefly85
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mi 09.03.11 16:06 
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?
www.c-sharpcorner.co...umericUpDownImg1.jpg

Ich freue mich auf eine Antwort

Gruss
Kevin
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4807
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: Mi 09.03.11 16:26 
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 61
Erhaltene Danke: 5

Windows 7 / Kubuntu 11.04
C# / vb.net / php / progress (VS 2010 Express / SharpDevelop / NetBeans / proAlpha)
BeitragVerfasst: 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:

ausblenden 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) // Wert wird größer
  {
    // Und hier dann eben den Befehl geben dass der Motor vorwärts fährt
    i = NumericUpDown1.Value;
  }
  else
  {
    // Wert wird kleiner
    i = NumericUpDown1.Value;
  }
}

Für diesen Beitrag haben gedankt: Freefly85
Freefly85 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 61
Erhaltene Danke: 5

Windows 7 / Kubuntu 11.04
C# / vb.net / php / progress (VS 2010 Express / SharpDevelop / NetBeans / proAlpha)
BeitragVerfasst: Mi 09.03.11 23:39 
Bitte bitte.

Alle Controls lassen sich mit .enabled aktivieren und deaktivieren. Sprich:
NumericUpDown1.Enabled = false;
Freefly85 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 22



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 61
Erhaltene Danke: 5

Windows 7 / Kubuntu 11.04
C# / vb.net / php / progress (VS 2010 Express / SharpDevelop / NetBeans / proAlpha)
BeitragVerfasst: 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.