Forum: PC-Programmierung Objekt-Beschriftungen


von Michael (Gast)


Lesenswert?

Hallo!

Ich bin gerade dabei mein 2tes kleines Programm in VB2010 zu kreieren, 
habe also noch nicht viel Erfahrung damit... Auf meinem Form befinden 
sich 10 RadioButtons. Deren Beschriftung soll vom Programm selbst 
geändert werden. Im Moment mache ich das "manuell",also 
RadioButton1.text="",RadioButton2.text=""... usw. Das is natürlich weden 
schön noch effizient. Hat jemand eine Idee wie ich die "1" bei 
RadioButton1 durch eine Zählvariable ersetzen kann?
Und da hätte ich gleich noch eine Fragen: Ich schreibe innerhalb einer 
For-Schleife Text in eine Listbox.Allerdings steht der Text erst nach 
Ablauf der gesamten Schleife in der Box...Wie kann ich innerhalb der 
Schleife erzwingen das die Textbox im Form aktualisiert wird?!

Über ein paar Tipps würde ich mich sehr freuen!

Grüße Michael

von Arc N. (arc)


Lesenswert?

Teil 1: Je nach dem was und wie gemacht werden soll z.B.
1
   For Each ctrl in Me.Controls
2
        if ctrl Is RadioButton Then
3
           ' passende Abfrage/Umwandlung des Names (ctrl.Name)
4
           ctrl.Text = ...
5
        End If
6
    Next
(hoffe die Syntax stimmt)

Teil 2:
http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox_methods.aspx
Die Methoden ab R ansehen
(das dauernde Neuzeichnen sollte man eigentlich vermeiden...das flackert 
u.U. heftig)

von Michael (Gast)


Lesenswert?

Hallo Arc Net!

Erstmal vielen Dank für Deine Hilfe. Was ich nicht erwähnt hab (weil ich 
nicht wusste das es einen Unterschied macht) ist das die RadioButtons in 
unterschiedlichen Panels liegen,dadurch wurden sie ignoriert. Ich habe 
mal Folgendes zusammengebastelt:
.
.
.
Dim ctrl As Control
Dim ctrl2 As Control

       .
       .
       .
        For i = 1 To 10
         .
         .
         .
          For Each ctrl2 In Me.Controls
              For Each ctrl In ctrl2.Controls
                 If ctrl.Name = "RadioButton" & i Then ctrl.Text = Text
              Next
          Next
        Next
        .
        .
        .

Das funktioniert...Aber warum? :-D Mir ist klar das so alle Controls 
durchgesucht werden,aber zu was gehören die Panels?
Und ist das eine "saubere" Lösung?

Das mit den Refresh klappt wunderbar(refresh-hätte ich selbst drauf 
kommen können... :-)) Die Aktualisierung passiert nur 10x in 15-110s, 
also ist das mit dem flackern nicht kritisch.

Besten Dank!

Grüße Michael

von Arc N. (arc)


Lesenswert?

Michael schrieb:
> Das funktioniert...Aber warum? :-D Mir ist klar das so alle Controls
> durchgesucht werden,aber zu was gehören die Panels?

Das sind auch Controls die wiederum Controls enthalten (genau so wie die 
Form selber) bzw. alle Controls sind von Control abgeleitet

> Und ist das eine "saubere" Lösung?

Je nach dem was man vor hat, sauberer wäre z.B. mit DataBindings zu 
arbeiten oder mit Reflection...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.