Dela via


Översikt över Visual Basic-programmodellen

Visual Basic tillhandahåller en väldefinierad modell för att styra beteendet för Windows Forms-program: Visual Basic Application-modellen. Den här modellen innehåller händelser för att hantera programmets start och avstängning, samt händelser för att fånga ohanterade undantag. Det ger också stöd för att utveckla program med en enda instans. Programmodellen är utökningsbar, så utvecklare som behöver mer kontroll kan anpassa sina övergripande metoder.

Användningsområden för programmodellen

Ett typiskt program måste utföra uppgifter när det startas och stängs av. När det till exempel startar kan programmet visa en välkomstskärm, göra databasanslutningar, läsa in ett sparat tillstånd och så vidare. När programmet stängs av kan det stänga databasanslutningar, spara det aktuella tillståndet och så vidare. Dessutom kan programmet köra specifik kod när programmet oväntat stängs av, till exempel under ett ohanterat undantag.

Visual Basic Application-modellen gör det enkelt att skapa ett program med en enda instans . Ett program med en instans skiljer sig från ett normalt program eftersom endast en instans av programmet kan köras i taget. Ett försök att starta en annan instans av ett program med en enda instans resulterar i att den ursprungliga instansen StartupNextInstance meddelas – med hjälp av händelsen – att ett nytt startförsök gjordes. Meddelandet innehåller den efterföljande instansens kommandoradsargument. Den efterföljande instansen av programmet stängs sedan innan någon initiering kan ske.

Ett program med en instans startar och kontrollerar om det är den första instansen eller en efterföljande instans av programmet:

  • Om det är den första instansen börjar den som vanligt.

  • Varje efterföljande försök att starta programmet, medan den första instansen körs, resulterar i mycket olika beteende. Det efterföljande försöket meddelar den första instansen om kommandoradsargumenten och avslutas sedan omedelbart. Den första instansen StartupNextInstance hanterar händelsen för att avgöra vilka efterföljande instansens kommandoradsargument var och fortsätter att köras.

    Det här diagrammet visar hur en efterföljande instans signalerar den första instansen:

    Diagram that shows a single instance application image.

Genom att StartupNextInstance hantera händelsen kan du styra hur ditt program med en instans beter sig. Microsoft Outlook körs till exempel vanligtvis som ett program med en enda instans. När Outlook körs och du försöker starta Outlook igen flyttas fokus till den ursprungliga instansen men en annan instans öppnas inte.

Händelser i programmodellen

Följande händelser finns i programmodellen:

  • Programstart. Programmet genererar Startup händelsen när den startar. Genom att hantera den här händelsen kan du lägga till kod som initierar programmet innan huvudformuläret läses in. Händelsen Startup ger också för att avbryta körningen av programmet under den fasen av startprocessen, om så önskas.

    Du kan konfigurera programmet så att det visar en välkomstskärm medan programmets startkod körs. Som standard undertrycker programmodellen välkomstskärmen när antingen kommandoradsargumentet eller -nosplash kommandoradsargumentet /nosplash används.

  • Program med en instans. Händelsen StartupNextInstance utlöses när en efterföljande instans av ett program med en enda instans startar. Händelsen skickar kommandoradsargumenten för den efterföljande instansen.

  • Ohanterade undantag. Om programmet stöter på ett ohanterat undantag genereras UnhandledException händelsen. Din hanterare för den händelsen kan undersöka undantaget och avgöra om körningen ska fortsätta.

    Händelsen UnhandledException utlöses inte under vissa omständigheter. Mer information finns i UnhandledException.

  • Nätverksanslutningsändringar. Om datorns nätverkstillgänglighet ändras genererar NetworkAvailabilityChanged programmet händelsen.

    Händelsen NetworkAvailabilityChanged utlöses inte under vissa omständigheter. Mer information finns i NetworkAvailabilityChanged.

  • Programmet har stängts av. Programmet tillhandahåller händelsen Shutdown för att signalera när den är på väg att stängas av. I händelsehanteraren kan du se till att de åtgärder som ditt program behöver utföra – t.ex. stängning och sparande – har slutförts. Du kan konfigurera programmet så att det stängs när huvudformuläret stängs eller stängas av endast när alla formulär stängs.

Tillgänglighet

Som standard är Visual Basic Application-modellen tillgänglig för Windows Forms-projekt. Om du konfigurerar programmet för att använda ett annat startobjekt eller startar programkoden med en anpassad Sub Main, kan det objektet eller -klassen behöva tillhandahålla en implementering av WindowsFormsApplicationBase klassen för att använda programmodellen. Information om hur du ändrar startobjektet finns i Programsida, Projektdesigner (Visual Basic).

Se även