Announcement

Collapse
No announcement yet.

mehrere Eingaben aus einer Textbox auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • mehrere Eingaben aus einer Textbox auslesen

    Hallo Entwickler Forum,
    mein Prof. hat mir jetzt die Aufgabe erteilt, einen Taschenrechner zu programmieren. Das habe ich an für sich gut hinbekommen. Nun soll die Aufgabe erschwert werden dadurch, dass die Eingabe, sowie Ausgabe ausschließlich durch eine Textbox stattfindet. Ich habe schon lange gegoogelt und dabei bemerkt das es wohl mit einem KeyEvent(?) zu tun haben muss. Ich konnte aber dennoch nichts konkretes finden. Ich tue mich halt auch echt schwer mit der Programmierung.
    Mein Taschenrechner besteht nun aus einer Textbox und vereinfacht, mit einem Button für + und einen Button für das Ergebnis. Mein Code ist bisher noch unbearbeitet, da ich den ersten Schritt nicht erkenne.

    [highlight=c#]
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace TaschenrechnermitEinerTextbox
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

    }
    }
    }
    [/highlight]


    Weiss einer einen Rat?
    Zuletzt editiert von gfoidl; 31.10.2014, 16:04. Reason: Code-Tags

  • #2
    Lösen kann man die auch erst wenn man sich der Aufgabe genau bewußt ist.
    Mir fallen viele Funktionsweisen ein wie man das mit einer TextBox lösen könnte aber welche Aufgabe hast du konkret?

    z.B.
    a.) Ausrechnen 'as you type'. Also sofort wenn das Zahl-Operator-Zahl Muster erkannt wurde ausrechnen und durch einen Wert ersetzten
    b.) Ein Formel eingeben und dann sobald ein bestimmter Key gedrückt wurde (z.B Enter) die Formel ausrechnen.

    oder...

    Comment


    • #3
      Es soll wie folgt aussehen:
      1. eine Textbox: 1. Zahl eingeben
      2. Button drücken (zB: +)
      3. textbox leeren, 2. Zahl eingeben
      4. Ergebnis Button drücken
      5. Textbox: Ergebnis anzeigen.

      Weiss echt nicht wie :/

      Comment


      • #4
        bei Schritt 2.) den Wert aus der TextBox nehmen und in einer Variable merken. Genauso den gedrückten Operator in einer Variable merken. Dann bei Schritt 4.) Zahl aus der Variable nehmen Operator aus der Variable nehmen und dann zusammen mit dem was dann in der TextBox steckt ausrechnen.

        PS. Mal uncharmant gefragt, weil du von Prof. sprachst, das ist kein IT-naher Studiengang oder?

        Comment


        • #5
          1. eine Textbox: 1. Zahl eingeben
          2. Button drücken ->Eingabe in Variable merken, Button in Variable merken
          3. textbox leeren, 2. Zahl eingeben
          4. Ergebnis Button drücken ->Eingabe in Variable merken,
          Auswerten
          Wenn Button +
          Ergebnis= erste Eingabe+zweite Eingabe
          Wenn Button -
          Ergebnis= erste Eingabe-zweite Eingabe
          Zuletzt editiert von Christian Marquardt; 31.10.2014, 14:18.
          Christian

          Comment


          • #6
            Das war mir schon soweit klar. Nur brauche ich den Code. Wenn ich jetzt die Eingabe in einer Variable merken lasse, dann ist die doch für die ganze Textbox gültig oder? also wenn ich schreibe

            int a,b;
            a = Textbox1.ConvertToInt32

            dann kann ich ja nicht schreiben
            b=Textbox1.ConvertToInt32

            Comment


            • #7
              Du musst dir schon klar werden, was nun passieren soll:

              Entweder deine Box enthält
              3+5=
              dann ist das drücken von irgendwelchen Buttons sinnlos oder
              sie arbeitet fast wie ein Taschenrechner, dann wird beim drücken vom Plusbutton die Textbox geleert. Dann hast du in a die erste Eingabe, durch den Plusbutton weißt du die Rechenoperation und hast beim Druck auf den Gleichbutton die zweite Eingabe
              Christian

              Comment


              • #8
                Ja mein Code sieht jetzt so aus.

                public Form1()
                {
                InitializeComponent();
                }
                int a, b;
                private void textBox1_TextChanged(object sender, EventArgs e)
                {

                }

                private void button1_Click(object sender, EventArgs e)
                {
                a = Convert.ToInt32(textBox1.Text);
                textBox1.Text = "";


                }

                private void button2_Click(object sender, EventArgs e)
                {

                b = Convert.ToInt32(textBox1.Text);
                textBox1.Text=a+b;
                }
                }

                Das funktioniert aber nicht. Da kommt die Fehlermeldeung: Fehler 1 Eine implizite Konvertierung von Typ 'int' in 'string' ist nicht möglich.

                Comment


                • #9
                  Wo der Fehler kommt, ist ein Geheimnis?

                  Wahrscheinlich
                  textBox1.Text=a+b;

                  Ein String kann so kein Integer aufnehmen.
                  Vielleicht bietet die Convert-Klasse eine Methode Integer zu einem String zu konvertieren.....könnte ToString heißen....
                  Christian

                  Comment


                  • #10
                    Also erstmal habe ich gerade gemerkt, dass er das plus rechnen erst in dem Ergebnis Button macht, dafür habe ich auch keine Lösung gefunden. Zudem kann ich nicht erst die Eingabe aus Textbox1 in Int umwandeln und dann direkt wieder in string. Irgendwas läuft hier falsch.

                    Comment


                    • #11
                      Habe den Code nun erweitert:

                      public Form1()
                      {
                      InitializeComponent();
                      }
                      int a, b,c;
                      private void textBox1_TextChanged(object sender, EventArgs e)
                      {

                      }

                      private void button1_Click(object sender, EventArgs e)
                      {
                      a = Convert.ToInt32(textBox1.Text);
                      textBox1.Text = "";
                      c = a + b;



                      }

                      private void button2_Click(object sender, EventArgs e)
                      {

                      b = Convert.ToInt32(textBox1.Text);
                      textBox1.Text = "";
                      textBox1.Text = Convert.ToString(c);

                      Aber rechnen tut er immer noch nicht richtig. Vermutlich, weil er die b Variable nicht bekommt. hmmm

                      Comment


                      • #12
                        Mein Code sieht jetzt so aus:

                        public partial class Form1 : Form
                        {
                        public Form1()
                        {
                        InitializeComponent();
                        }
                        int a, b,c;
                        private void textBox1_TextChanged(object sender, EventArgs e)
                        {

                        }

                        private void button1_Click(object sender, EventArgs e)
                        {
                        a = Convert.ToInt32(textBox1.Text);
                        textBox1.Text = "";

                        if (textBox1.Modified)
                        {
                        b = Convert.ToInt32(textBox1.Text);
                        }
                        c = a + b;



                        }

                        private void button2_Click(object sender, EventArgs e)
                        {


                        textBox1.Text = "";
                        textBox1.Text = Convert.ToString(c);



                        }
                        }
                        }




                        aber rechnen tut er immer noch nicht richtig. Vermutlich, weil er die b Variable nicht ausliest vor dem Event. Hmmm
                        Zuletzt editiert von Humpty; 01.11.2014, 12:54.

                        Comment


                        • #13
                          Ich vermute button1 ist der Knopf für +.
                          Der wird also nach dem eingeben der 1.ten Zahl benutzt. Es hilft nicht dort schon irgendwas zu rechnen die 2.te Zahl gibt es ja noch nicht.

                          Dann nehme ich an button2 ist der Knopf zum ausrechnen (ich hoffe die fällt gerade auf das die gute Benennung von Dingen IMMER wichtig ist). Erst dort hast du auch die 2.te Zahl zum rechnen also dort diese 2.te Zahl aus der TextBox holen. Mit der ersten zusammenrechnen und dann wieder in die TextBox reinschreiben.

                          Dein Code in Beitrag 11 ist näher dran als der in Beitrag 12. Nur das Ausrechnen ist an der falschen Stelle. Die ließt die 2.te Zahl im Button2_Click aus versucht aber schon in Button1_Click damit zu rechnen.

                          Comment


                          • #14
                            Das war mir schon soweit klar.
                            Äh, da bist du dir sicher?

                            Versuch doch mal ganz langsam das obige geschriebene umzusetzen
                            Christian

                            Comment


                            • #15
                              Ich kann mir vorstellen, dass dies mit einer if return anweisung gemacht wird. Ich weiss aber weder was ich da rein schreiben soll, noch wo ich das reinschreiben soll.

                              Comment

                              Working...
                              X