VB.NET - Textboxen auf Form über Index ansprechen

Hallo,
ich hab bisher viel mit VB6 programmiert und scheiter jetzt an einer Frage, die dort ganz einfach zu lösen war:

Ich habe eine Form mit 81 Textboxen (für ein Spiel entwickeln ähnlich
Sudoku) in 9 Reihen und 9 Spalten. Diese möchte ich jetzt dynamisch
ansprechen. Die erste Idee war so:

Name der Textbox: textboxROW1COL1

Dim r as String
Dim c as String
r = „1“
c = „1“
Me.Controls(„textboxROW“ & r.toString & „COL“ & c.String).Text = „1“

Was aber nicht funktioniert hat…

Ich befürchte mal es ist ganz einfach, oder?

Danke vorab für die Hilfe

Matthias

Hi

Ich habe eine Form mit 81 Textboxen (für ein Spiel entwickeln
ähnlich
Sudoku) in 9 Reihen und 9 Spalten. Diese möchte ich jetzt
dynamisch
ansprechen. Die erste Idee war so:

Me.Controls(„textboxROW“ & r.toString & „COL“ & c.String).Text
= „1“

So gehts leider nicht. Aber Controls ist eine Collection, damit kannst du also alles möglich treiben. z.B.

foreach Control c in Me.Controls
 if (c.GetType = typeof Textbox) ((Textbox)c).Text="1"

oder

 r=1; ((Textbox)Me.Controls[r]).Text = "1"

und so weiter (das ist eher .NET-Pseudocode, muss du auf VB ggf. etwas anpassen)

Am besten erstellst du ein extra Panel, wo nur die Textboxen drin sind, dann kannst du mit Panel.Controls arbeiten und muss nicht aufpassen, dass du keine Buttons o.ä. erwischst. Der Name spielt dann eigentlich keine Rolle mehr.

Hoffe es ist verständlich…
Andreas

Hallo Matthias,

unter VBA habe ich soetwas schon gemacht:

formName.Controls(„n_“ & i).Visible = True

Voraussetzung ist natürlich, dass der „Name“ der Objekte auch entsprechend belegt wurde. Für ein ähnliches Problem habe ich unter c# nach einer solchen Namneskonvention Objekte dynamisch erzeugt und dann auch so angesprochen. Es sollte also funktionieren, wenn die Namen „stimmen“.

biba

Dirk