[VB.NET]Procedure benaderen vanuit Usercontrol

Pagina: 1
Acties:

  • Folkert
  • Registratie: September 2001
  • Laatst online: 05-05 12:52
Momenteel ben ik bezig een windows applicatie te maken. Deze applicatie is opgebouwd uit diverse userControls. De update naar de database gebeurt middels een pop-up formulier. Nu wil ik dat bepaalde subroutines na een update opnieuw moeten worden uitgevoerd(refresh). Deze subroutines staan in een userControl die weer in het hoofdFormulier is geladen. Hoe kan ik subroutines in een userControl benaderen vanuit een popup? Ik weet niet in wleke richting ik moet zoeken.... zit ik warm als ik Delegates noem????

[ Voor 12% gewijzigd door Folkert op 11-07-2005 09:56 ]


  • joopst
  • Registratie: Maart 2005
  • Laatst online: 01-10-2024
Je kan het beste je routines uit die usercontrol halen en ze plaatsen in een aparte class.

Vanuit beide controls kan je dan makkelijk de routines uit die nieuwe class aanroepen.

  • Folkert
  • Registratie: September 2001
  • Laatst online: 05-05 12:52
Is het niet gewoon mogelijk om direct de routines, die in mijn applicatie de controls opnieuw binden zodat ze met de meest recente data werken, aan te roepen?

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Dat is zeker wel mogelijk. Het makkelijkste is het om dat te doen door de methodes in een aparte class te zetten en als static te definieren. Wat joopst eigenlijk ook zegt. Anders ga je vanuit een usercontrol de parent casten naar het hoofdscherm om daar dan weer een usercontrol op te zoeken om daar dan weer een functie van aan te roepen. En daar is denk ik maar één mogelijke reactie op: yuch....

Maak een aparte class met de methodes die je nodig hebt en you're in business

Edit: je zou de methodes ook static op je usercontrol kunnen definieren, maar dan nog is het eigenlijk een beetje viezig. Als je het vanaf meerdere plaatsen wil aanroepen, moet je het ook op een generieke plaats neerzetten, en niet in een specifieke usercontrol.

[ Voor 23% gewijzigd door OZ-Gump op 11-07-2005 12:29 ]

My personal website


  • Folkert
  • Registratie: September 2001
  • Laatst online: 05-05 12:52
Ok, ga daar maar eens mee aan de slag, bedankt!

  • Folkert
  • Registratie: September 2001
  • Laatst online: 05-05 12:52
Hier nog even de oplossing die voor mijn situatie eigenlijk wel goed werkt:
Ik heb op de button een addHandeler toegevoegd:
Visual Basic .NET:
1
2
3
4
5
Private Sub btnAddCustomerNote_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddCustomerNote.Click
        Dim ctrlNotes As New customerNotes(customerID, 1)
        AddHandler ctrlNotes.Closed, AddressOf Me.addNote_Closed
        ctrlNotes.Show()
    End Sub

En direct in het mainForm de procedure aangemaakt die alle data ververst:
Visual Basic .NET:
1
2
3
4
5
Private Sub addNote_Closed(ByVal sender As Object, ByVal e As System.EventArgs)
        loadCustomer()
        loadcontacts()
        loadCustomerNotes()
End Sub

Op deze manier stuur ik de handler mee met het nieuwe venster. Er zullen uiteraard betere manieren voor zijn en het is misschien een workaround voor wat ik misschien had willen doen maar het is een goed werkbare oplossing...
Pagina: 1