Dela via


Anvisningar: Stöd för COM Interop genom att visa ett Windows-formulär med Metoden ShowDialog

Du kan lösa problem med com-samverkan (Component Object Model) genom att visa ditt Windows-formulär i en .NET Framework-meddelandeloop som skapas med hjälp av metoden Application.Run.

Om du vill att ett formulär ska fungera korrekt från ett COM-klientprogram måste du köra det på en Windows Forms-meddelandeloop. Gör detta genom att använda någon av följande metoder:

Förfarande

Att använda metoden Form.ShowDialog kan vara det enklaste sättet att visa ett formulär på en .NET Framework-meddelandeloop eftersom det av alla metoder kräver minst kod för att implementera.

Metoden Form.ShowDialog pausar det ohanterade programmets meddelandeloop och visar formuläret som en dialogruta. Eftersom värdprogrammets meddelandeloop har pausats skapar Form.ShowDialog-metoden en ny .NET Framework-meddelandeloop för att bearbeta formulärets meddelanden.

Nackdelen med att använda metoden Form.ShowDialog är att formuläret öppnas som en modal dialogruta. Det här beteendet blockerar alla användargränssnitt (UI) i det anropande programmet medan Windows-formuläret är öppet. När användaren avslutar formuläret stängs .NET Framework-meddelandeloopen och det tidigare programmets meddelandeloop börjar köras igen.

Du kan skapa ett klassbibliotek i Windows Forms som har en metod för att visa formuläret och sedan skapa klassbiblioteket för COM-interop. Du kan använda den här DLL-filen från Visual Basic 6.0 eller Microsoft Foundation Classes (MFC), och från någon av dessa miljöer kan du anropa metoden Form.ShowDialog för att visa formuläret.

Så här stöder du COM-interop genom att visa ett windows-formulär med metoden ShowDialog

Se även