Avatar billede steensommer Praktikant
13. september 2010 - 23:05 Der er 5 kommentarer og
1 løsning

For next

Hej

Følgende programmering skal slette indholdet i textbox25 til textbox 144 men jeg har lidt problemer med at gøre det rigtigt :-/
Jeg kunne selvfølgelig skrive:

FrmPatientflade.textbox25.text = ""
FrmPatientflade.textbox26.text = ""
etc etc

...men det virker sgu lidt simpelt. Hvad er der galt med nedenstående?

        Dim var As Integer
        Dim startVal As Integer
        Dim endVal As Integer
        startVal = 25
        endVal = 144
        For var = startVal To endVal
            (FrmPatientflade.textbox) & Var & (.text) = ""
        Next var
Avatar billede arne_v Ekspert
14. september 2010 - 01:19 #1
Man kan ikke lave variable på den måde i VB.NET.

Du har flere muligheder:
1) hav dine TextBox'e i et array
2) iterer over Controls og test på om navnet passer
3) brug reflection
Avatar billede arne_v Ekspert
14. september 2010 - 01:23 #2
#2 bliver noget a la:

            For Each c As Control In Controls
                If TypeOf c Is TextBox Then
                    If c.Name.StartsWith("textbox") Then
                        Dim n As Integer = Integer.Parse(c.Name.Substring(7))
                        If(n >= startval And n <= endval) Then
                            CType(c, TextBox).Text = ""
                        End If
                    End If
                End If
            Next
Avatar billede steensommer Praktikant
14. september 2010 - 21:27 #3
Jeg skrev som du foreslog men textboxene bliver desværre ikke tømt!


        Dim var As Integer
        Dim startVal As Integer
        Dim endVal As Integer
        startVal = 25
        endVal = 144

        For Each c As Control In FrmPatientflade.Controls
            If TypeOf c Is TextBox Then
                If c.Name.StartsWith("Textbox") Then
                    Dim n As Integer = Integer.Parse(c.Name.Substring(7))
                    If (n >= startVal And n <= endVal) Then
                        CType(c, TextBox).Text = ""
                    End If
                End If
            End If
        Next
Avatar billede arne_v Ekspert
15. september 2010 - 02:03 #4
Er Name rent faktisk "Textboxnnn" ?

(husk at der er forskel på store og små bogstaver)
Avatar billede steensommer Praktikant
15. september 2010 - 13:24 #5
Du havde ret. Sådan her fungerer det :-). Svar lige så du kan får point og tusinde tak for hjælpen :-)

        Dim var As Integer
        Dim startVal As Integer
        Dim endVal As Integer
        startVal = 25
        endVal = 192

        For Each c As Control In FrmPatientflade.Controls
            If TypeOf c Is TextBox Then
                If c.Name.StartsWith("TextBox") Then
                    Dim n As Integer = Integer.Parse(c.Name.Substring(7))
                    If (n >= startVal And n <= endVal) Then
                        CType(c, TextBox).Text = ""
                    End If
                End If
            End If
        Next c
Avatar billede arne_v Ekspert
15. september 2010 - 15:25 #6
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester