for each lus voor controls

Status
Niet open voor verdere reacties.

weswillem

Gebruiker
Lid geworden
8 nov 2011
Berichten
310
Ik heb op de tabpagina gegevens staan'
Als ik nu een nieuwe record wil maken dan
moeten daarop alle textboxen leeg gemaakt worden.
De textboxen heb ik benoemd als txt1xxxx, txt1bbbbb
Wat ik dat de code doet is dat hij kijkt of eerst 4 karakters
overeenkomen met txt1 en dat hij deze dan leeg maakt.
Zo iets geldt ook voor het enablen.
Edoch bij de 1e contrl schijnt een button te zijn gaat het al mis
kan hem niet converteren. type Button naar string is ongeldig.
bvd

Code:
Public Sub LegenTextboxen()
        Dim left As String
        Dim Found As Boolean
        Dim myObject As String
        Found = False
        Dim ctr As Control

        For Each myObject In Controls
            If TypeOf ctr Is TextBox Then
                left = myObject.Substring(myObject, 4)

                If left = "txt1" Then
                    MsgBox(left)
                    ' ctr.enabled
                    'ctr.text=""
                End If
            End If

        Next
    End Sub
 
Laatst bewerkt:
Hoi,

Dat komt omdat je nergens de variable "ctr" inhoud geeft, dus het if-statement heeft nu geen zin.

Probeer dit eens:
[CPP] Dim Left As String = Nothing

For Each Ctrl As Control In Me.Controls
If TypeOf Ctrl Is TextBox Then
Left = Ctrl.Name.Substring(0, 4)

If Left = "txt1" Then
MsgBox(Ctrl.Name)
''//Ctrl.enabled
''//Ctrl.text=""
End If
End If
Next[/CPP]

Let er wel op dat deze code de controls niet perse in een logische volgorde weergeeft.

Jij ook fijne kerstdagen!

MartinJM
 
Martin.
Op het form staat een TabControl1
Hij kijkt nu naar de buttons en gaat daarna uit de loop.
De textboxen staan dus op de TabControl1
Daar zal ook wellicht iets voor zijn.
 
Hoi,

Verander "Me.Controls" naar iets als "TabControl1.Controls". Ik weet niet zeker of het precies zo is, maar het is ongeveer zoiets...

MartinJM
 
Martin,

Met enige aanpassing voor mijn doel.
Bij TabControl1.Controls gaat hij de pages af, moet dus
de page zijn waar het op staat
Bedankt maar weer.

Code:
 Public Sub LegenTextboxen()
        Dim left As String = Nothing
       
        For Each Ctrl As Control In TabPage1.Controls
            If TypeOf Ctrl Is TextBox Or TypeOf Ctrl Is MaskedTextBox Then
                left = Ctrl.Name.Substring(0, 3)
                If left = "txt" Or left = "Mas" Then
                    ''//Ctrl.enabled
                    Ctrl.Text = ""
                End If
            End If
        Next

    End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan