Delen via


Procedure: COM-interoperabiliteit ondersteunen door een Windows-formulier weer te geven met de Methode ShowDialog

U kunt com-interoperabiliteitsproblemen (Component Object Model) oplossen door uw Windows-formulier weer te geven in een .NET Framework-berichtlus, die wordt gemaakt met behulp van de methode Application.Run.

Als u een formulier correct wilt laten werken vanuit een COM-clienttoepassing, moet u het uitvoeren in een Windows Forms-berichtlus. Gebruik hiervoor een van de volgende methoden:

Werkwijze

Het gebruik van de methode Form.ShowDialog kan de eenvoudigste manier zijn om een formulier weer te geven in een .NET Framework-berichtlus omdat voor alle benaderingen de minste code moet worden geïmplementeerd.

De Form.ShowDialog methode onderbreekt de berichtlus van de niet-beheerde toepassing en geeft het formulier weer als een dialoogvenster. Omdat de berichtenlus van de hosttoepassing is onderbroken, maakt de Form.ShowDialog methode een nieuwe .NET Framework-berichtlus om de berichten van het formulier te verwerken.

Het nadeel van het gebruik van de methode Form.ShowDialog is dat het formulier wordt geopend als een modaal dialoogvenster. Dit gedrag blokkeert alle gebruikersinterfaces (UI) in de aanroepende toepassing terwijl het Windows-formulier is geopend. Wanneer de gebruiker het formulier afsluit, wordt de .NET Framework-berichtlus gesloten en wordt de berichtlus van de eerdere toepassing opnieuw uitgevoerd.

U kunt een klassebibliotheek maken in Windows Forms met een methode om het formulier weer te geven en vervolgens de klassebibliotheek voor COM-interoperabiliteit te bouwen. U kunt dit DLL-bestand gebruiken vanuit Visual Basic 6.0 of Microsoft Foundation Classes (MFC) en vanuit een van deze omgevingen kunt u de Form.ShowDialog methode aanroepen om het formulier weer te geven.

Com-interoperabiliteit ondersteunen door een vensterformulier weer te geven met de methode ShowDialog

  • Vervang alle aanroepen naar de Form.Show methode door aanroepen naar de Form.ShowDialog methode in uw .NET Framework-onderdeel.

Zie ook