Benutzer mit den meisten Antworten
Newbie.. Werte von numericUpdown weiterverarbeiten

Frage
-
Hallo,
bin jetzt seit ein paar Tagen nach Lösungsansätzen für eine denke (dachte) ich simple Aktion (hat mit AutoIt und Excel eigentlich gut funktioniert)
Mit dem c++ Express Studio habe ich mir eine Form aufgebaut, die später als Standalone laufen soll.
Es gibt (zukünftig) mehrere Gruppen von Controls. Das was ich möchte, klappt leider noch nicht mal mit dem ersten Feld und so ein bischen läuft mir die Zeit davon.
Darin gibt es zwei Updown Felder (1 und 2). Die Werte dieser Felder möchte ich auslesen, mathematisch simpel bearbeiten und das Ergebnis in einer Textzeile darunter dynamisch ausgeben.
also Wert Feld1 x 2 + Wert Feld 2. Das ganze dann in eine Variable und die soll dann als Platzhalter im Text stehen, damit sich der dieser sofort ändert, wenn Feld 1 oder 2 verändert werden.
Bisher die Idee: unter den main-Dekalartionen die notwendigen Variablen definiert
int fs = int::parse(numericUpdown1);
int mw = int::parse(numericUpdown2);
in mp = fs*2+mw
..und dann verliessen sieiIhn..da ich nicht ganz verstehe, wie ich dann die Textzeile hinkriege...
Wenn ich den ansatz mal habe, lassen sich die anderen Anforderungen davon leicht ableiten.
Also, so ein bischen Anschubhilfe wäre nett, was wohin geschrieben werden soll
Gruß
Antworten
-
Wenn Du die Änderungen sofort angezeigt haben willst, musst Du Dich zuerst mal auf die Änderung benachrichten lassen:
Also ein Event auf "ValueChanged" registrieren! Am einfachsten geht dies durch doppel-Klick auf das NumericUpDown-Control!
Und darin rufst Du dann die methode auf, welche die Anzeige aktualisierien soll:
private void numericUpDown1_ValueChanged(object sender, EventArgs e) { UpdateText(); }
Und das machst Du für beide "NumericUpDown"-Controls
Die "UpdateText" Methode muss dann so aussehen:
private void UpdateText() { Decimal erg = numericUpDown1.Value + numericUpDown2.Value; TextBox1->Text = erg.ToString(); }
Fertig!
Jochen Kalmbach (MVP VC++)- Als Antwort vorgeschlagen Jochen Kalmbach Montag, 19. Oktober 2009 14:36
- Als Antwort markiert Robert Breitenhofer Dienstag, 27. Oktober 2009 12:19
Alle Antworten
-
Wenn Du die Änderungen sofort angezeigt haben willst, musst Du Dich zuerst mal auf die Änderung benachrichten lassen:
Also ein Event auf "ValueChanged" registrieren! Am einfachsten geht dies durch doppel-Klick auf das NumericUpDown-Control!
Und darin rufst Du dann die methode auf, welche die Anzeige aktualisierien soll:
private void numericUpDown1_ValueChanged(object sender, EventArgs e) { UpdateText(); }
Und das machst Du für beide "NumericUpDown"-Controls
Die "UpdateText" Methode muss dann so aussehen:
private void UpdateText() { Decimal erg = numericUpDown1.Value + numericUpDown2.Value; TextBox1->Text = erg.ToString(); }
Fertig!
Jochen Kalmbach (MVP VC++)- Als Antwort vorgeschlagen Jochen Kalmbach Montag, 19. Oktober 2009 14:36
- Als Antwort markiert Robert Breitenhofer Dienstag, 27. Oktober 2009 12:19
-
Hallo,
danke für die schnelle Antwort. Der Ansatz war sehr hilfreich. habe das Schem,a zunächst mal einfach übernommen und geschaut was passiert. Nach einigen Fehlermeldungen und Basteleien sieht das Ergebnis für Visual C++ 2008 Express dann so aus:
private
: System::Void numericUpDown1_ValueChanged(System::Object^ sender, System::EventArgs^ e)
{
UpdateText();
}
private: System::Void numericUpDown2_ValueChanged(System::Object^ sender, System::EventArgs^ e)
{
UpdateText();
}
private: System::Void UpdateText()
{
Decimal erg = numericUpDown1->Value + numericUpDown2->Value + numericUpDown1->Value;
textBox1->Text = erg.ToString();
}
Wenn ich das recht verstehe, gibt es wohl in den Bezeichnungen kleine, aber feine Unterschiede.. ;)
Aber noch eine grundsätzliche Frage: in der Entwicklungsumgebung kann so eine Funktion nicht "zusammengeklickt" werden? Bin da wohl etwas von Excel "verwöhnt"...
Trotzdem hat mir das auf jeden Fall erstmal weitergeholfen. Vielen Dank! -
Grins..ja, soll ja auch so sein, will das ja schließlich lernen - was natürlich mit "Anschubhilfe" und den daraus resultierenden Erfolgserlebnissen deutlich leichter fällt.
Mit "Zusammenklicken" meinte ich eigentlich nur, das man quasi so ähnlich wie in Excel die Formeln aufbaut..,)
Btw.: mein kleines Projekt macht alleine durch diese Codezeilen gute Fortschritte - und die nächste "Baustelle" wartet auch schon..aber das wird erstens ein anderes und zweitens ein Thema, dass ich doch hoffe, bis dahin auch alleine gelöst zu haben (...sowas wie bedingte Formatierung in Excel bezüglich der Hintergrundfarbe eines Textfeldes abhängig davon, wie groß der enthaltene Wert darin ist..), aber wie gesagt, da versuch ich mich erstmal selber dran.