Textboxen füllen und abfragen

22/12/2008 - 19:03 von Markus Eisenbart | Report spam
Hallo,
unter VB6 konnte man Textboxen einen Index vergeben und diese dann darüber
ansprechen
z.B.:

For i = 1 to 10
textbox(i).text = "xxxx"
next i

Wie realisiere ich das unter .NET?
Gruß
Markus
 

Lesen sie die antworten

#1 Karsten Sosna
22/12/2008 - 19:37 | Warnen spam
unter VB6 konnte man Textboxen einen Index vergeben und diese dann darüber
ansprechen
z.B.:

For i = 1 to 10
textbox(i).text = "xxxx"
next i

Wie realisiere ich das unter .NET?



Hallo Markus,
Steueerelementefelder gibt es in VB.NET nicht mehr. Wenn Du so etwas
erreichen willst gibt es mehrere Möglichkeiten.

- die Textboxen in einer List o.à. einfügen.

Private myTextBoxes As New List(Of TextBox)

Private Sub Form_Load(...
myTextBoxes.Add(TextBox1)
myTextBoxes.Add(TextBox2)
myTextBoxes.Add(TextBox3)
..
myTextBoxes.Add(TextBoxN)
End Sub

Irgendwo in dem Formular kannst Du dann die TextBoxen via bspw.
myTextBoxes(index).Text = "Hello" ansprechen.

- Die TextBoxen in ein bspw. Panel verschieben.

Ansprechen kannst Du Sie dann via DirectCast(Panel1.Controls(index)),Text
="World".

Hier wird es aber kompliziert. Ein bspw. Panel kann ja auch Labels etc.
aufnehmen. Diese würden dann auch in der Controls-Auflistung vorhanden sein.

Es gibt noch einige andere Varianten, doch wird das alles noch komplizierter
und unsicherer.

Um Dir selber einen Gefallen zu tun nutze die erste Variante. Sie ist von
den Controls-Auflistungen unabhàngig.
Beispiel: Du hast ein Formular. Daruf befindet sich eine GroupBox und in
diese ein Panel. Letzlich befindet sich im Panel die TextBox. Diese Textbox
befindet sich also in
Form1.Controls(0).Controls(0)
Das erste Controls(0) ist die Controls-Auflistung der GroupBox, das zweite
Controls(0) ist die Auflistung im Panel. Wird jetzt irgendein Steuerelement
hinzugefügt oder entfernt àndern sich die Indicies und das Control wird
vielleicht gar nicht mehr gefunden oder es wird ein Falsches selektiert.

Mit der obigen List kann das eigentlich nicht passieren.

Noch eine Möglichkeit ist das Control via Namen anzusprechen. Dazu
durchsucht man die Controls-Auflistungen rekursiv. Versuch es erst mal mit
der List(Of T).
Gruß Scotty

Ähnliche fragen