Avatar billede sbrandsborg Nybegynder
28. december 2008 - 15:13 Der er 1 kommentar

Usercontrol i array

Hej alle sammen,

Jeg har skrevet følgende kode:
        For x = 1 To intModuleNumber
            Dim ButtonControl As New ucModuleButton
            ButtonControl.Name = "ButtonControl"
            ButtonControl.Location = pntModuleLocation
            pntModuleLocation.Y += 65
            pnlModuleList.Controls.Add(ButtonControl)
        Next

Meget simpelt, jeg laver en række usercontrols i runtime, og det virker helt fint, mit problem er bare.. Hvordan styre jeg hvad der sker hvis jeg foreksempel clicker på en af dem.

Jeg har søgt rundt på nettet og kan simpelthen ikke finde noget om det, så håber i kan hjælpe
Avatar billede tjacob Juniormester
29. december 2008 - 11:06 #1
1. Du skal først sørge for at din usercontrol klasse har de events du skal bruge (f.eks. click).
Når du så indsætter din usercontrol på en form i forms-designeren, så kan du automatisk få genereret eventhandlere til de forskellige events som din usercontrol har, som f.eks.:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    End Sub

Dette er eventhandleren for click på en almindelig button.

Her er der en (meget kort) gennemgang af events-eventhandlers m.m. :

http://answers.google.com/answers/threadview/id/323258.html


2. Når disse ting er på plads:
Ved runtime creation af controllerne skal du tilføje en eventhandler for hver event du ønsker at bruge.
Dvs at du i forvejen skal lave en eventhandler (en sub) der f.eks. handler click eventet. Når du så laver controllen runtime skal der oprettes en reference til denne eventhandler med funktionen AddHandler.
I AddHandler funktionen angiver du dels hvilket event (som du selv har defineret i din usercontrol klasse), og dels en reference (AddressOff) til eventhandleren (en sub).
Du kan så vælge at lave en handler til hver control, eller du kan lade éen handler klare dem alle. I sidstnævnte tilfælde skal du så kunne skelne imellem controllerne via EventArgs, f.eks. ved at give dem unikke navne:
ButtonControl.Name = "ButtonControl" & X.ToString.

Som der står nederst på siden i ovenstående link:

Gå ind på MSDN og tjek følgende emner:

Events and Delegates
Event Keyword
Delegate Keyword
RaiseEvent Keyword
EventArgs Class
AddHandler
RemoveHandler
AddressOf Operator
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

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