|
VB.Net-Forum - Beitragsübersicht - |
|
Thema | V12: RadioButton zentral setzen |
Von |
DiBo |
E-Mail |
dbork@hotmail.de |
Datum |
17. Januar 2016 um 20:37:21 |
Frage |
Hallo Freunde, drei RadioButtons auf einer Form werte ich zentral mit diesem Code aus: ----in Form Load--------------- For Each Kontrolle As Control In Me.Controls If TypeOf Kontrolle Is RadioButton Then Dim RadioKnopf As RadioButton = DirectCast(Kontrolle, RadioButton) AddHandler RadioKnopf.CheckedChanged, AddressOf RadioButton_ÄnderungPrüfen End If Next '------------------------------- Private Sub RadioButton_ÄnderungPrüfen(ByVal sender As System.Object, ByVal e As System.EventArgs) Label4.Text = DirectCast(sender, Control).Name 'hier wird dann die Einstellung in Settings abgelegt, per Index. End Sub
Nun möchte ich beim Start der Anwendung einen der drei RadioButtons (über Settings) auch zentral auf True setzen. Ich sehe die Herausforderung darin, dass ich ja zu Beginn des Programmes nicht weiß, welcher der drei buttons auf True gesetzt werden soll. Nun könnte ich natürlich eine for next- Abfrage machen und den betreffenden RadioButton dann auf True setzen. Aber VB2012 ist durch seine Classentechnik derart ausgebufft, dass ich vermute dass dies auch viel eleganter funktioniert. Wie macht man das fachgerecht?
Viele Grüße Dieter |
|
Antwort: |
Von |
Nico |
E-Mail |
nico.schertler@studentpartners.de |
Datum |
18. Januar 2016 um 19:43:27 |
Antwort |
Hallo,
jedes Steuerelement kann durch seinen Namen angesprochen werden. Das war auch schon in VB6 so. Wenn der erste RadioButton den Namen "meinRadioButton" hat, dann kannst du einfach:meinRadioButton.Checked = True Grundlage dafür ist die Klasse der Form, in der du arbeitest. Sobald du eine neue Form anlegst, wird dafür eine Klasse erstellt (Public Class MeineForm). In VB wird leider ein Großteil der Klasse versteckt. Nämlich genau der Teil, der vom Designer erzeugt wird (also dem grafischen Tool, mit dem du deine Steuerelemente anordnest). In diesem Teil würde auch die Deklaration von "meinRadioButton" als Variable enthalten sein. Sobald das Programm ausgeführt wird, wird die Klasse instanziiert. Das heißt, dass ausgehend von der Klasse ein konkretes Objekt erzeugt wird. Die Klasse ist sozusagen eine Vorlage für Objekte. Und jedes Objekt hat dann eine eigene Variable "meinRadioButton". Darüberhinaus kannst du auch mit Me.Controls.Find("meinRadioButton") jedes beliebige Steuerelement auf der Form abfragen. Das macht aber nur in dynamischen Fällen Sinn, in denen entweder Steuerelemente zur Laufzeit angelegt werden oder der Name des Elements erst zur Laufzeit feststeht.
Nico |
|
[ Antwort schreiben | Zurück zum VB.Net-Forum | Forum-Hilfe ] |
|
Letzte Aktualisierung: Sonntag, 13. Dezember 2015 |
|