ERLEDIGT
NEIN
NEIN
ANTWORTEN
12
12
ZUGRIFFE
6284
6284
EMPFEHLEN
-
Hallo Gemeinde,
ich habe ein Formular mit vielen Textboxen. Nun möchte ich zum Beispiel zum Leeren aller Boxen nicht jede Box einzeln ansprechen sondern mit einer Schleife und einer Laufvariablen die Boxen leeren.
Ich stelle mir das ungefähr so vor:
Dim lauf
For lauf = 1 to 100
textbox(lauf).text=""
Next
Jedoch scheint das so nicht zu funktionieren. Kann mir da jemand weiter helfen? Wie benenne ich eine Textbox mit einer Variablen im Namen? Geht das überhaupt?
Vielen Dank für eure Hilfe,
Holger
-
Hallo,
um die Textboxen in einer Schleife zu leeren, fallen mir zwei Möglichkeiten ein:
- Statt vieler einzelner Textboxen erzeugst Du Dir ein Textbox-Array, d.h. alle Textboxen erhalten den selben Namen aber eine individuelle fortlaufende Index-Nummer (in der Formular-Ansicht ist das die Index-Eigenschaft des Steuerelements).
Dann kannst Du in einer Schleife alle Textboxen des Arrays leeren, z.B. wenn das Textbox-Array Text1 heißt:
Code :1 2 3 4
dim i as long for i = Text1.lbound to Text1.ubound step 1 Text1.Item(i).text = "" next i
- Da Du wahrscheinlich nicht alle Textboxen umbenennen und ihnen eine Index-Nummer zuweisen willst, gibt es noch eine Möglichkeit mit der Du alle Textboxen eines Formulars leeren kannst:
Code :1 2 3 4 5 6 7
dim c as control for each c in controls if typeof c is textbox then c.text = "" endif next c
Vielleicht hat ja noch jemand anders eine praktischere Lösung parat.Und wer unter Euch frei von Tippfehlern ist, der werfe die erste Tastatur.
- Statt vieler einzelner Textboxen erzeugst Du Dir ein Textbox-Array, d.h. alle Textboxen erhalten den selben Namen aber eine individuelle fortlaufende Index-Nummer (in der Formular-Ansicht ist das die Index-Eigenschaft des Steuerelements).
-
Ich denke du hast da schon die zwei sinnvollsten Möglichkeiten aufgezeigt.
Zitat von RamonR
hihi = -h²
-
Hallo RamonR,
vielen Dank für deine Hilfe, die .Item-Lösung funktioniert problemlos.
Liebe Grüße,
Bartmouse
-
Statt
reicht glaub ich auchCode :1
Text1.Item(i).text = ""
Code :1
Text1(i).text = ""
Und die zweite Möglichkeit kann man auch noch verkürzen:
Code :1 2 3 4 5
dim c as textbox for each c in form1.controls c.text = "" next c
MfG, schachmat
-
Ja, würde vollkommen reichen, ich bevorzuge aber die andere Schreibweise ... jedem das seine
Zitat von schachmat
Zitat von schachmat
Zitat von Al Borland
Da nicht jedes Control der Form eine Textbox seien muss, dürftest Du dort auf einen Fehler laufen. Andere Controls haben ja teilweise nicht die .Text Eigenschaft.Geändert von RamonR (26.08.06 um 08:02 Uhr)
Und wer unter Euch frei von Tippfehlern ist, der werfe die erste Tastatur.
-
Wenn c von vorneherein schon vom Typ Textbox ist, dann geht er in der Schleife auch nur alle Textboxen durch
MfG, schachmat
-
Hab ich doch glatt den Datentypen überlesen.
Zitat von schachmat
Ok, Einwand akzeptiert
Und wer unter Euch frei von Tippfehlern ist, der werfe die erste Tastatur.
-
Hallo,
man kann es aber auch so schreiben, wenn ich die Frage richtig verstanden habe, um die txtboxen zu leeren:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Private Sub cmdReset_Click() ClearTextBoxesOnForm End Sub Public Sub ClearTextBoxesOnForm() Dim ctl As Control For Each ctl In Me.Controls If TypeOf ctl Is TextBox Then ctl.Text = "" End If Next End Sub

so schreib ich es immer...
mfg andy
-
Ich muss das Thema nochmal hochholen, denn der Code funktioniert leider nicht.
Zitat von schachmat
Ich hatte es vor langer Zeit auch mal so probiert und hatte noch dunkel in Erinnrerung, dass er nicht klappt (zumindest unter VB6).
Wenn ich o.g. Code verwende ist das Resultat meines Kompilers:
Deshalb verwende ich schon seit langem:
Zitat von VB6-Kompiler
Code :1 2 3 4 5 6 7
dim c as control for each c in controls if typeof c is textbox then c.text = "" endif next c
Und wer unter Euch frei von Tippfehlern ist, der werfe die erste Tastatur.
-
Nur mal rein Interessehalber: In welcher Zeile meldet er den Fehler?
MfG, schachmat
-
Er meldet den Fehler in
Code vb:1
For Each c In Me.Controls
hihi = -h²
-
Ja, das kann sein, da Me.Controls ja vom Typen Control ist. Gibt es da vielleicht eine Eigenschaft Me.Controls.Textboxes oder so was in der Art? Bei VB8 sollte das aber schon gehen.... muss ich demnächst mal ausprobieren
MfG, schachmat
Ähnliche Themen
-
Textbox mit variablem Namen ansprechen
Von Be19 im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 05.08.10, 13:31 -
[C++] VB 2008 TextBox Variable auslesen; [Help]
Von starkalex im Forum C/C++Antworten: 1Letzter Beitrag: 10.02.10, 18:51 -
Textbox-Namen von fremder Anwednung ermitteln
Von 154500 im Forum Visual Basic 6.0Antworten: 9Letzter Beitrag: 12.03.08, 21:12 -
Variableninhalt als Namen für eine andere Variable
Von IIIRaVeNIII im Forum JavaAntworten: 6Letzter Beitrag: 13.04.05, 11:05 -
variable an dyn. Textbox in Filmsequenz übergeben ****t nicht
Von scanline im Forum Flash PlattformAntworten: 14Letzter Beitrag: 21.03.02, 13:49





Zitieren
Login





