Gå til innhold

Bruke variabler for å angi ett objekt.


Anbefalte innlegg

Videoannonse
Annonse

Det finnes mange måter. Her er et lite utvalg:

Public Class Form1

 

   ' Den enkleste metoden er nok imidlertid å gruppere kontrollene manuelt (må initialiseres i Form_Load)

   Private YourGroup() As CheckBox

 

   Private Sub btnSet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSet.Click

 

       ' (1) Avkrysser alle sjekkbokser som starter med en gitt streng

       For Each Item As Control In Me.Controls

           If TypeOf Item Is CheckBox Then

               With DirectCast(Item, CheckBox)

                   ' Man kan fint bruke andre identifikasjonsmetoder (Hint: Tag-egenskapen)

                   If .Name.StartsWith("CheckBox") Then

                       .Checked = True

                   End If

               End With

           End If

       Next

 

       ' (2) Som ovenfor, men bruker her LINQ (inkludert i VB.NET 2008)

       For Each CheckBox In Me.Controls.OfType(Of CheckBox)()

           If CheckBox.Name.StartsWith("CheckBox") Then

               CheckBox.Checked = True

           End If

       Next

 

       ' (3) Om disse sjekkboksene må refereres til ofte, kunne det vært en god idè å "refactor"-e

       '     utvelgelsen til en egen prosedyre (og evt. lagre resultatet i en variabel).

       For Each CheckBox In ControlGroup(Of CheckBox)("CheckBox")

           CheckBox.Checked = True

       Next

 

       ' (4) Manuel gruppe

       For Each CheckBox In YourGroup

           CheckBox.Checked = True

       Next

 

   End Sub

 

   Public Function ControlGroup(Of T As Control)(ByVal GroupName As String) As IEnumerable(Of T)

       ' Dersom man ikke har tilgang til LINQ må man bruke metode (1) internt

       Return Me.Controls.OfType(Of T)().Where(Function(x) x.Name.StartsWith(GroupName))

   End Function

 

   Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

       ' Kan ikke plasseres øverst da kontrollene ikke er initialisert på det tidspunktet

       YourGroup = New CheckBox() {CheckBox1, CheckBox2, CheckBox3, CheckBox4, CheckBox5}

   End Sub

End Class

Endret av aadnk
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...