Funkcja RichTextBox zaznaczająca RadioButton - które się znajdują na tym samym TabPage

0

Witam.

Z racji tego iż kiedyś jak zaczynałem pisać program, robiłem ten kod chaotycznie, np. pisząc 1000 warunków if, tworząc 1000 RichTextBoxów , Tworząc ręcznie 1000 TabPage'ow itp itd....
Potrzebuje teraz napisać taki warunek, który poradzi sobie z tym całym bałaganem ;/

harthfhfghfgh.png

Jest to wykonalne?
Prosiłbym o jakieś rady bo nadal nie jestem Asem w programowaniu a zależy mi na takiej funkcji ;/

@kAzek

2

Napisałeś sam choć linię kodu? Wystarczy prosta procedura:

    Private Sub CheckRadioButton(ParentCtrl As Control, Text As String)
        If ParentCtrl.HasChildren Then
            For Each Ctrl As Control In ParentCtrl.Controls
                If TypeOf Ctrl Is RadioButton And Text.Equals(Ctrl.Text) Then
                    CType(Ctrl, RadioButton).Checked = True
                    Exit Sub
                End If
                CheckRadioButton(Ctrl, Text)
            Next
        End If
    End Sub

I przykład wywołania:

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim Page As TabPage = TabControl1.TabPages(0) 'zakładka
        'wywołanie procedury 1-szy param rodzic (w tym wypadku TabPage), 2- gi param szukany tekst 
        CheckRadioButton(Page, "RadioButton3")
    End Sub
0

dziekuje ! bardzo !

funkcja działa świetnie, tak jak chcialem ;)

próbowałem napisać podobną, która działa w drugą stronę :P

czyli zaznaczony Radiobutton.text = textbox
ale coś mi nie wyszlo :(

taka funkcja tez by sie przydala (bym nie musial ręcznie pisać setki linijek kodu xD):

co tu robie zle?

Private Sub CheckRadioButton2(ParentCtrl As Control, Text As String)
        If ParentCtrl.HasChildren Then
            For Each Ctrl As Control In ParentCtrl.Controls

                If TypeOf Ctrl Is RadioButton And CType(Ctrl, RadioButton).Checked = True Then
                    Text = Ctrl.Text

                    Exit Sub
                End If
                CheckRadioButton2(Ctrl, Text)
            Next
        End If
    End Sub

@kAzek

1

Funkcja

    Private Function GetCheckedRadioButtonText(ParentCtrl As Control) As String
        GetCheckedRadioButtonText = ""
        If ParentCtrl.HasChildren Then
            For Each Ctrl As Control In ParentCtrl.Controls
                If (TypeOf Ctrl Is RadioButton) Then
                    If (CType(Ctrl, RadioButton).Checked = True) Then
                        GetCheckedRadioButtonText = Ctrl.Text
                        Exit Function
                    End If
                End If
                GetCheckedRadioButtonText = GetCheckedRadioButtonText(Ctrl)
            Next
        End If
    End Function

Wywołanie:

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Dim Page As TabPage = TabControl1.TabPages(0) 'zakladka
        'wywolanie funkcji 1-szy param rodzic (w tym wypadku TabPage), funkcja zwraca pusty string jeżeli nie znaleziono zaznaczonego
        Label1.Text = GetCheckedRadioButtonText(Page)
    End Sub

1 użytkowników online, w tym zalogowanych: 0, gości: 1