Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
model Windows Forms aplikace a ovládací prvky můžou spolupracovat s nespravovanými aplikacemi s některými upozorněními. Následující části popisují scénáře a konfigurace, které model Windows Forms aplikace a ovládací prvky podporují a které nepodporují.
ovládací prvky model Windows Forms a aplikace technologie ActiveX
S výjimkou microsoft Internet Exploreru a tříd MICROSOFT Foundation (MFC) nejsou ovládací prvky model Windows Forms podporovány v aplikacích navržených k hostování technologie ActiveX ovládacích prvků. Další aplikace a vývojové nástroje, které jsou schopné hostovat ovládací prvky technologie ActiveX, včetně technologie ActiveX testovacích kontejnerů z verzí sady Visual Studio starších než Visual Studio .NET 2003, nejsou podporovány hostiteli ovládacích prvků model Windows Forms.
Tato omezení platí také pro použití ovládacích prvků model Windows Forms prostřednictvím zprostředkovatele komunikace modelu COM modelu COMPONENT Object Model. Použití ovládacího prvku model Windows Forms prostřednictvím obálky s možností volání modelu COM (CCW) je podporováno pouze v Internet Exploreru. Další informace o interoperabilitě modelu COM najdete v tématu
Následující tabulka ukazuje dostupnou podporu hostování technologie ActiveX ovládacích prvků model Windows Forms.
verze model Windows Forms | Technická podpora |
---|---|
.NET Framework verze 1.0 | Internet Explorer 5.01 a novější verze |
.NET Framework verze 1.1 a novější | Internet Explorer 5.01 a novější verze Microsoft Foundation Classes (MFC) 7.0 a novější |
Hostování komponent model Windows Forms jako ovládacích prvků technologie ActiveX
V rozhraní .NET Framework 1.1 byla podpora rozšířena tak, aby zahrnovala mfc 7.0 a novější verze. Tato podpora zahrnuje všechny kontejnery, které jsou plně kompatibilní s prostředím MFC 7.0 a novějším technologie ActiveX řídicím kontejnerem.
Registrace ovládacích prvků model Windows Forms, protože ovládací prvky technologie ActiveX se nepodporují. com.ms.win32.Ole32.CoCreateInstance
Volání metody pro ovládací prvky model Windows Forms také není podporováno. Podporuje se pouze spravovaná aktivace ovládacích prvků model Windows Forms. Jakmile vytvoříte ovládací prvek model Windows Forms, můžete ho hostovat v aplikaci MFC stejně jako ovládací prvek technologie ActiveX.
Pokud chcete v nespravované aplikaci používat ovládací prvky model Windows Forms, musíte buď hostovat modul CLR pomocí nespravovaných rozhraní API pro hostování modulu CLR, nebo používat funkce interoperability C++. Doporučeným řešením je použití funkcí zprostředkovatele komunikace C++.
model Windows Forms v klientských aplikacích modelu COM
Když otevřete formulář Windows Form z klientské aplikace modelu COM, například aplikace Visual Basic 6.0 nebo aplikace MFC, může se formulář chovat neočekávaně. Když například stisknete klávesu TAB, fokus se nezmění z jednoho ovládacího prvku na jiný ovládací prvek. Když stisknete klávesu ENTER, když je fokus na příkazovém tlačítku, událost tlačítka Click se nevyvolá. Může také dojít k neočekávanému chování při stisknutí kláves nebo aktivitě myši.
K tomuto chování dochází, protože nespravovaná aplikace neimplementuje podporu smyčky zpráv, která model Windows Forms vyžaduje správné fungování. Smyčka zpráv poskytovaná klientskou aplikací MODELU COM se v podstatě liší od smyčky zpráv model Windows Forms.
Smyčka zpráv aplikace je interní smyčka programu, která načítá zprávy z fronty zpráv vlákna, překládá je a pak je odesílá do aplikace, která se má zpracovat. Smyčka zpráv pro formulář windows nemá stejnou architekturu jako smyčky zpráv, které poskytují dřívější aplikace, jako jsou aplikace Jazyk Visual Basic 6.0 a aplikace MFC. Zprávy okna, které jsou publikovány do smyčky zprávy, mohou být zpracovávány jinak než Windows Form očekává. Proto může dojít k neočekávanému chování. Některé kombinace stisknutí kláves nemusí fungovat, některé aktivity myši nemusí fungovat nebo některé události nemusí být vyvolány podle očekávání.
Řešení problémů s interoperabilitou
Tyto problémy můžete vyřešit zobrazením formuláře ve smyčce zpráv rozhraní .NET Framework, který je vytvořen pomocí Application.Run metody.
Chcete-li, aby formulář windows fungoval správně z klientské aplikace MODELU COM, musíte ho spustit ve smyčce zpráv model Windows Forms. K tomu použijte jeden z následujících přístupů:
Použijte metodu Form.ShowDialog k zobrazení formuláře Windows. Další informace naleznete v tématu Postupy: Podpora zprostředkovatele komunikace modelu COM zobrazením formuláře Systému Windows pomocí metody ShowDialog.
Zobrazte každý formulář Windows Form v novém vlákně. Další informace naleznete v tématu Postupy: Podpora zprostředkovatele komunikace modelu COM zobrazením jednotlivých formulářů systému Windows ve vlastním vlákně.
Viz také
- Model Windows Forms a nespravované aplikace
- Zprostředkovatel komunikace s objekty COM
- Interoperabilita modelů COM v aplikacích .NET Framework
- Ukázky interoperability modelu COM
- Aximp.exe (importér ovládacích prvků ActiveX Windows Forms)
- Vystavení komponent architektury .NET Framework pro COM
- Zabalení sestavení pro model COM
- Registrování sestav pomocí modelu COM
- Postupy: Podpora zprostředkovatele komunikace s objekty COM zobrazením formuláře Windows pomocí metody ShowDialog
- Postupy: Podpora komunikace s objekty COM zobrazením jednotlivých formulářů Windows ve vlastním vlákně
.NET Desktop feedback