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

Funkcja RichTextBox zaznaczająca RadioButton - które się znajdują na tym samym TabPage
K9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 28
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

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
2

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

Kopiuj
    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:

Kopiuj
    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
K9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 28
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?

Kopiuj
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

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gorlice
1

Funkcja

Kopiuj
    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:

Kopiuj
    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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.