[.NET] Brauche Hilfe bei vb textbox

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von LuZi, 2. Februar 2009 .

  1. 2. Februar 2009
    Brauche Hilfe bei vb textbox

    Hi Leute. Ich als blutigster Anfänger versuche mich mal an einem Bruchrechnerprogramm (ohne weiteres kürzen vorerst).
    Man gibt erst die 4 sachen ein, danach drückt man den Button und dann soll er in die Textbox 5 und 6 das jeweilige ergebnis anzeigen.
    Aber irgendwas läuft da schief. Bitte sagt mir was und erklärt mir auch warum.

    mfg LuZi

    Code:
     Public Class Form1
     Dim Zaehler1
     Dim Zaehler2
     Dim Nenner1
     Dim Nenner2
     Dim Ergebnisnenner
     Dim Ergebniszaehler
    
    
     Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
     TextBox1 = Zaehler1
     End Sub
    
     Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
    
     End Sub
    
     Private Sub TextBox4_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox4.TextChanged
     TextBox4 = Zaehler2
     End Sub
    
     Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged
     TextBox2 = Nenner1
     End Sub
    
     Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged
     TextBox3 = Nenner2
     End Sub
    
     Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click
    
     End Sub
    
     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     Dim Ergebniszaehler As Integer = Zaehler1 * Zaehler2
     Dim Ergebnisnenner As Integer = Nenner1 * Nenner2
     Label4.Text = Ergebniszaehler
     Label3.Text = Ergebnisnenner
     End Sub
     Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label4.Click
    
     End Sub
    
     Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label3.Click
    
     End Sub
    
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
     End Sub
    
     Private Sub TextBox6_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox6.TextChanged
     TextBox6.Text = Ergebniszaehler
     End Sub
    
     Private Sub TextBox5_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox5.TextChanged
     TextBox5.Text = Ergebnisnenner
     End Sub
    End Class
    
    
     
  2. 2. Februar 2009
    Ich meine ein Fehler wäre:

    TextBox1 = Zaehler1
    TextBox4 = Zaehler2
    ... usw.

    Willste du nicht dem Zähler den Wert geben, der in der Textbox steht? Sprich:

    Zaehler = TextBox1
    ...usw.

    ?

    Und schreibt man nicht "Me.TextBox1" oder "[TextBox1]" statt einfach nur "TextBox1"?

    Ich bin kein vba-Experte, ist mir nur so auf die schnelle aufgefallen. Sorry wenn das was ich gesagt habe Humbuck ist, mag solch unqualifizierte Antworten eigtl. garnicht ^^
    Aber vllt. klappts ja.

    Edit:
    Und deklarier die Variablen doch gleich oben. Du arbeitest mit Zaehler1 und 2 obwohl du sie oben noch garncht deklariert hast. (Also "As Integer" noch dahinter) und dann kannst du unten beim Button1_click das "Dim Ergebniszaehler As Integer" rausnehmen und einfach nur "Ergebniszaehler" hinschreiben, ansonsten wäre das echt unsauberer Programmierstil^^
     
  3. 2. Februar 2009
    Du hast da einiges Falsch gemacht zunächst einmal zum auslesen

    Code:
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
     TextBox1 = Zaehler1
     End Sub
    
    das ist nicht richtig. Du musst das so machen:

    Code:
    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
     Zaehler1 = TextBox1.Text
     End Sub
    
    Das musst du natürlich auch bei allen anderen machen.

    Zeahler2 = TextBox4.Text
    Nenner1 = TextBox2.Text
    Nenner2 = TextBox3.Text

    //Edit

    Und ganz oben die

    Code:
     Dim Zaehler1
     Dim Zaehler2
     Dim Nenner1
     Dim Nenner2
     Dim Ergebnisnenner
     Dim Ergebniszaehler
    
    so deklarieren

    Code:
    Dim Zaehler1, Zaehler2, Nenner1, Nenner2, Ergebnisnenner, Ergebniszaehler as Integer
    
    LG Farin
     
  4. 2. Februar 2009
    ok ich danke euch. kann im moment leider nich bewerten. werde es am abend nachholen.
    aber wie gesagt.. blutigster anfänger

    und wie gebe ich die ergebnisse in eine textbox aus?

    Habe jetzt editiert, da er mir einen Fehler angezeigt hat und das Pragramm nach dem Debuggen sich immer aufhängt.

    Code:
     Dim Ergebniszaehler As Integer = Zaehler1 * Zaehler2
     Dim Ergebnisnenner As Integer = Nenner1 * Nenner2
     If Ergebniszaehler < 1000000 Then
     Ergebniszaehler = TextBox6.Text
     Else
     MsgBox(" Zahl ist zu groß")
     End If
     If Ergebnisnenner < 1000000 Then
     Ergebnisnenner = TextBox5.Text
     Else
     MsgBox(" Zahl ist zu groß")
     End If
    
     
  5. 2. Februar 2009
    Code:
    Dim Ergebniszaehler As Integer = Zaehler1 * Zaehler2
     Dim Ergebnisnenner As Integer = Nenner1 * Nenner2
    
    Mach die "Dim" und "As Integer" weg und schreib die schon ganz am Anfang hinter deine Variablen (wie mein Vorvorposter schon sagte).

    Code:
     Ergebniszaehler = TextBox6.Text
    
    Mit dieser Codeline weist du der Variable Ergebniszaehler den Wert zu, der in deiner TextBox6 steht. Du willst es aber genau andersrum machen, also vertauschen
     
  6. 2. Februar 2009
    hejj geil es funzt...
    und wie schaffe ich es jetz noch dass er zb aus

    12/10*12/10= 100/20
    5/1 macht??
     
  7. 5. Februar 2009

    Um einen sauberen Programmierstil in VB entwickeln zu können solltest du IMMER im Kopf deines Quellcodes OPTION EXPLICIT angeben,somit verhinderst du, dass Variablen uinsauber deklariert werden können!!!!! VB ist zwar einfach für den Anfang, aber man versaut sich den Programmierstil unheimlich, weil man mit VB sehr schlampig arbeiten kann.

    Code:
    OPTION EXPLICIT
    
    
    Sub Main()
    
    End Sub
    
     
  8. 5. Februar 2009


    Mit unsauber meine ich eine eindeutige Deklaration,
    Bei VB ist es möglich eine Variable zu deklarieren, welche keinen bestimmten Typ hat,

    also z.B.
    Code:
    
    Dim i
    
    i=1
    i = "test"
    
    
    Die OPTION EXPLICIT verhindert u.a. so etwas
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.