Delen via


Overzicht van het Visual Basic-toepassingsmodel

Visual Basic biedt een goed gedefinieerd model voor het beheren van het gedrag van Windows Forms-toepassingen: het Visual Basic-toepassingsmodel. Dit model bevat gebeurtenissen voor het afhandelen van het opstarten en afsluiten van de toepassing, evenals gebeurtenissen voor het ondervangen van niet-verwerkte uitzonderingen. Het biedt ook ondersteuning voor het ontwikkelen van toepassingen met één exemplaar. Het toepassingsmodel is uitbreidbaar, zodat ontwikkelaars die meer controle nodig hebben, de overschrijfbare methoden kunnen aanpassen.

Gebruikt voor het toepassingsmodel

Een typische toepassing moet taken uitvoeren wanneer deze wordt gestart en afgesloten. Wanneer deze bijvoorbeeld wordt gestart, kan de toepassing een welkomstscherm weergeven, databaseverbindingen maken, een opgeslagen status laden, enzovoort. Wanneer de toepassing wordt afgesloten, kan deze databaseverbindingen sluiten, de huidige status opslaan, enzovoort. Bovendien kan de toepassing specifieke code uitvoeren wanneer de toepassing onverwacht wordt afgesloten, zoals tijdens een onverwerkte uitzondering.

Met het Visual Basic Application-model kunt u eenvoudig een toepassing met één exemplaar maken. Een toepassing met één exemplaar verschilt van een normale toepassing, omdat slechts één exemplaar van de toepassing tegelijk kan worden uitgevoerd. Een poging om een ander exemplaar van een toepassing met één exemplaar te starten, resulteert in een melding van het oorspronkelijke exemplaar, door middel van de StartupNextInstance gebeurtenis, dat er een andere startpoging is gedaan. De melding bevat de opdrachtregelargumenten van het volgende exemplaar. Het volgende exemplaar van de toepassing wordt vervolgens gesloten voordat er initialisatie kan plaatsvinden.

Een toepassing met één exemplaar wordt gestart en controleert of dit het eerste exemplaar of een volgende instantie van de toepassing is:

  • Als dit het eerste exemplaar is, begint het zoals gebruikelijk.

  • Elke volgende poging om de toepassing te starten, terwijl het eerste exemplaar wordt uitgevoerd, resulteert in zeer verschillend gedrag. De volgende poging meldt het eerste exemplaar over de opdrachtregelargumenten en wordt vervolgens onmiddellijk afgesloten. Het eerste exemplaar verwerkt de StartupNextInstance gebeurtenis om te bepalen wat de opdrachtregelargumenten van het volgende exemplaar waren en blijft worden uitgevoerd.

    In dit diagram ziet u hoe een volgende instantie het eerste exemplaar aangeeft:

    Diagram that shows a single instance application image.

Door de StartupNextInstance gebeurtenis af te handelen, kunt u bepalen hoe uw toepassing met één exemplaar zich gedraagt. Microsoft Outlook wordt bijvoorbeeld meestal uitgevoerd als een toepassing met één exemplaar; wanneer Outlook wordt uitgevoerd en u Outlook opnieuw probeert te starten, wordt de focus verplaatst naar het oorspronkelijke exemplaar, maar er wordt geen ander exemplaar geopend.

Gebeurtenissen in het toepassingsmodel

De volgende gebeurtenissen vindt u in het toepassingsmodel:

  • Toepassing opstarten. De toepassing genereert de Startup gebeurtenis wanneer deze wordt gestart. Door deze gebeurtenis af te handelen, kunt u code toevoegen waarmee de toepassing wordt geïnitialiseerd voordat het hoofdformulier wordt geladen. De Startup gebeurtenis voorziet ook in het annuleren van de uitvoering van de toepassing tijdens die fase van het opstartproces, indien gewenst.

    U kunt de toepassing zo configureren dat er een welkomstscherm wordt weergegeven terwijl de opstartcode van de toepassing wordt uitgevoerd. Standaard onderdrukt het toepassingsmodel het welkomstscherm wanneer het /nosplash argument of -nosplash het opdrachtregelargument wordt gebruikt.

  • Toepassingen met één exemplaar. De StartupNextInstance gebeurtenis wordt gegenereerd wanneer een volgende instantie van een toepassing met één exemplaar wordt gestart. De gebeurtenis geeft de opdrachtregelargumenten van het volgende exemplaar door.

  • Onverwerkte uitzonderingen. Als de toepassing een niet-verwerkte uitzondering tegenkomt, wordt de UnhandledException gebeurtenis gegenereerd. Uw handler voor die gebeurtenis kan de uitzondering onderzoeken en bepalen of de uitvoering moet worden voortgezet.

    De UnhandledException gebeurtenis wordt in sommige omstandigheden niet gegenereerd. Zie UnhandledException voor meer informatie.

  • Wijzigingen in de netwerkverbinding. Als de beschikbaarheid van het netwerk van de computer wordt gewijzigd, wordt de gebeurtenis gegenereerd door de NetworkAvailabilityChanged toepassing.

    De NetworkAvailabilityChanged gebeurtenis wordt in sommige omstandigheden niet gegenereerd. Zie NetworkAvailabilityChanged voor meer informatie.

  • Toepassing wordt afgesloten. De toepassing geeft de Shutdown gebeurtenis aan wanneer deze op het punt staat om af te sluiten. In deze gebeurtenis-handler kunt u ervoor zorgen dat de bewerkingen die uw toepassing moet uitvoeren, bijvoorbeeld sluiten en opslaan, moeten worden voltooid. U kunt uw toepassing zo configureren dat deze wordt afgesloten wanneer het hoofdformulier wordt gesloten of alleen als alle formulieren worden gesloten.

Beschikbaarheid

Het Visual Basic-toepassingsmodel is standaard beschikbaar voor Windows Forms-projecten. Als u de toepassing configureert voor het gebruik van een ander opstartobject of de toepassingscode start met een aangepast object Sub Main, moet dat object of de klasse mogelijk een implementatie van de WindowsFormsApplicationBase klasse bieden om het toepassingsmodel te kunnen gebruiken. Zie Application Page, Project Designer (Visual Basic) voor informatie over het wijzigen van het opstartobject.

Zie ook