FILET DE VB : Utilisation dynamique des traiteurs d'événement Votre mag libre de droit

ARTICLES EN LIBRE DE DROIT :: Informatique :: FILET DE VB : Utilisation dynamique des traiteurs d'événement


FILET DE VB : Utilisation dynamique des traiteurs d'événement


  • L'ordinateur est en panne: à qui s'adresser ?    par Jean-Marie Noguier
  • Formation informatique gratuite    par cathy clement
  • Défi et définition du cybermarketing    par Antoine Moretto
  • Bien choisir son hébergeur    par Franck Sublum
  • Mais que se passe-t-il avec les cartouches d'imprimantes ?    par Franck Sublum






  • Avec des événements et des poignées que la clause exige nous former pour déclarer l'objet variable et le traiteur d'événement comme nous écrivons notre code, ainsi la tringlerie est créée sur la compilation. D'une part, avec AddHandler et RemoveHandler, la tringlerie est créée et enlevée au temps d'exécution, qui est plus flexible.

    Supposons que nous voulons charger plusieurs formes d'enfant de MDI, permettant à chacune de elles d'être chargée seulement une fois, et naturellement pour savoir quand une des formes d'enfant est fermée. Puisque nous avons plusieurs formes pour nous charger voudrions employer les mots-clés d'AddHandler et de RemoveHandler ainsi nous pouvons être flexibles et écrire le code minimal que nous pouvons.

    Obtenons sale.

    1. Sous chaque forme d'enfant de MDI nous devons déclarer un événement public.
    Événement public FormClosed (ByVal f comme forme)

    2. Sous chaque forme d'enfant de MDI nous devons employer la méthode de Form_Closed qui manipule la classe de MyBase.Closed et soulevons l'événement de FormClosed.

    Sous-marin privé Form1_Closed (expéditeur de ByVal comme objet, ByVal e comme System.EventArgs) _
    Poignées MyBase.Closed
    RaiseEvent FormClosed (je)
    Sous-marin d'extrémité

    3. Sur notre forme de MDI nous devons déclarer deux variables de membre. Le premier du type forme et du deuxième type est ArrayList.
    M_f privé (0) comme forme
    m_sLoadedChildForms privés en tant que nouvel ArrayList

    4. Nous devons mettre en application une recherche de la volonté de méthode les formes d'enfant de MDI qui sont chargées. Nous emploierons également cette méthode quand nous déchargeons les formes d'enfant de MDI.

    Fonction privée SearchChildForm (strSearchForm de ByVal comme corde, _
    idxEventHandler facultatif de ByVal en tant que longtemps = -1) en tant que longtemps
    Obscurcir I en tant que longtemps = 0


    Pour I = 0 à m_sLoadedForms.Count - 1
    Si m_sLoadedForms.Item (I) = strSearchForm alors
    Faible j en tant que longtemps = 0
    Pour j = m_f.GetLowerBound (0) à m_f.GetUpperBound (0)
    Si m_f (j). idxEventHandler de nom = de strSearchForm puis = j
    Prochain j
    Renvoyer I
    Finir si
    Après
    Renvoyer -1
    Finir la fonction

    5. Nous devons appliquer une méthode pour charger les formes d'enfant de mdi et pour employer la méthode de SearchChildForm pour ne pas charger la même fois de forme d'enfant de mdi deuxième.

    LoadChildForms secondaire privé (ByVal f comme forme)
    Si m_f.GetUpperBound (0) > 0 puis
    M_f de conserve de ReDim (m_f.GetUpperBound (0) + 1)
    Finir si
    m_f (m_f.GetUpperBound (0)) = f


    Sinon SearchChildForm (m_f (m_f.GetUpperBound (0)). Nom ()) >= 0 puis
    m_f (m_f.GetUpperBound (0)).MdiParent = je


    M_f d'AddHandler (m_f.GetUpperBound (0)). Fermé, _
    AddressOf UnloadChildForm
    m_f (m_f.GetUpperBound (0)). Montrer ()


    m_sLoadedChildForms.Add (m_f (m_f.GetUpperBound (0)). Nom)
    Autrement
    Si m_f.GetUpperBound (0) > 0 puis
    M_f de conserve de ReDim (m_f.GetUpperBound (0) - 1)
    Finir si
    Finir si
    Finir le sous-marin

    6. Enfin nous devons appliquer une méthode pour sortir notre forme d'enfant de mdi à partir de la liste de rangée ainsi nous pouvons la charger encore si nous voulons.

    UnloadForm secondaire privé (expéditeur de ByVal comme System.Object, ByVal e comme System.EventArgs)
    Obscurcir I en tant que longtemps
    Obscurcir s comme corde = sender.GetType (). Nom
    Faible IndexForEventHandler = -1
    i = SearchChildForm (s, IndexForEventHandler)


    Si >= 0 puis m_sLoadedForms.RemoveAt (I) d'I


    Si >= 0 d'IndexForEventHandler puis
    M_f de RemoveHandler (IndexForEventHandler). Fermé, AddressOf UnloadForm
    m_f (IndexForEventHandler) = rien
    Finir si


    Finir le sous-marin



    Le (25/03/2007)



     Je veux recopier l'article

     Envoyer l'article à un ami  -  Imprimer l'article



    Découvrez d'autres articles :

  • Mais que se passe-t-il avec les cartouches d'imprimantes ?    par Franck Sublum
  • Halte aux spams !    par Jean-Marie Noguier
  • Le clone iphone cect p168 mis à nu!    par James LISSAINT
  • Réussir la mise en ligne d'un nouveau site    par Franck Sublum
  • 5 etapes pour devenir un super-affilie qui gagne ?    par MESSA MIKAEL



  • © 2008 Fruitymag
    4 bouts à la construction un emplacement content avec plus de visiteurs de répétitionGuide expert de SEO - conclusions (partie 10/10)6 bases de gestion de forumInterdit de Google et de se demander pourquoi ?Entretien de site Web : Que prend-il pour contrôler votre site Web ?Promotion locale de site Web d'affaires - comment monter en flèche vos affaires avec le trafic de déChoix de votre conception de WebAdsense - quand devriez-vous l'employer ?Grandes plaines de Microsoft : Obtenant à nouveaux utilisateurs les permis - FAQ annuel de plan de sPourquoi Individu-Éditer votre livre ?baignes sainte radegondeferrerebois garsbresolettessaint cibardMarcq-en-Baroeul (59700)Riel-les-Eaux (21570)Muncq-Nieurlet (62890)Salvezines (11140)Suarce (90100)La Bezole (11300)Beurey-sur-Saulx (55000)Valcourt (52100)Niedermodern (67350)Marcenais (33620)