Viele Textboxen

Dark Ranger

Erfahrenes Mitglied
Ich habe in einem Programm von mir 9 Textboxen in denen immer das gleiche gerechnet wird, kann man das irgendwie über eine Schleife machen, weil im moment hat jede textbox einen anderen Namen, aber irgendwie geht es doch bestimmt auch, dass alle den gleichen namen haben und so besser angesprochen werden können, aber wodurch werden sie dann unterschieden?

Kann mir jemand sagen, was ich eingeben muss? Oder wonach ich suchen muss?
 
Die Lösung ist ein Array von Textboxen.
Klingt kompliziertet als es ist, denn VB6 macht es dir da noch leicht. Einfach in der IDE eine Textbox kopieren und wieder einfügen. Dann hast du automatisch ein Array mit dem Namen der kopierten Textbox. Diese sprichst du dann einfach über den Index an, der i.d.R. bei 0 beginnt (kannst du aber auch ändern/prüfen, ist eine Eigenschaft von Textfeld).
Dann kannst du alle Textboxen in einer Schleife durchlaufen:
Code:
For i = 0 to 8
  Textbox1(i).Text = "Hallo, ich bin Textbox Nr." & i
Next i
 
Jetzt funktioniert die Rechnung nicht mehr, dass lag daran, dass ich jedesmal nur das Ausgabetextfeld aktualisiert habe und nicht alles zusammenaddiert habe!

Edit:
Ich habe es es so gemacht und das funktioniert auch:

Code:
For m = 0 To 8  
txtAusgabe.Text  = txtAusgabe.Text + Int((30 * Text(m).Text * (1.1 ^ Text(m).Text)) + 20) 
Next m

Wie schaffe ich es ihm jetzt zu sagen, dass wenn in einem Textfeld nix steht, dass er dann dort eine 0 eintragen soll?

Code:
For m = 0 To 8
If Text(m).Text = " " Then
Text(m).Text = 0
End if  
txtAusgabe.Text  = txtAusgabe.Text + Int((30 * Text(m).Text * (1.1 ^ Text(m).Text)) + 20) 
Next m

Damit geht es nicht! Muss ich eine Do Loop Schleife einbauen?
 
Zuletzt bearbeitet:
Hallo, Du hast einen kleinen Fehler gemacht.
Versuch´s mal so:
Code:
For m = 0 To 8
If Text(m).Text = "" Then   ' hier hast Du:  If Text(m).Text = " " Then
Text(m).Text = 0
End if  
txtAusgabe.Text  = txtAusgabe.Text + Int((30 * Text(m).Text * (1.1 ^ Text(m).Text)) + 20) 
Next m
 
Code:
For m = 0 To 8 
If txtEingabe(m).Text = "" Then 
txtEingabe(m).Text = 0 
End If 
txtAusgabe.Text = txtAusgabe.Text + Int((30 * txtEingabe(m).Text * (1.1 ^ txtEingabe(m).Text)) + 20) 
If txtEingabe(m).Text = 0 Then 
txtAusgabe.Text = txtAusgabe.Text - 20 
End If
Next m

Warum sagt er mit jetzt auf einmal "Type mismatch" Vorher hat es auch funktioniert! Und es liegt nicht an dem Teil den ich neui eingefügt habe! In den Textboxen stehen wirklich nur Zahlen!
 
Das hat damit nix zu tun! Auch wenn ich andere Zahlen dort stehen habe, dann kommt dieser fehler und wenn ich auf Debug klicke, dann zeigt er mir diese Zeile an:

Code:
txtAusgabe.Text = txtAusgabe.Text + Int((30 * txtEingabe(m).Text * (1.1 ^ txtEingabe(m).Text)) + 20)

Aber ich weiß nicht wo dort der Fehler liegen soll!
 

Neue Beiträge

Zurück