Programová omezení hostitelských položek a hostitelských ovládacích prvků

Jednotlivé položky hostitel a host control je navržen pro chovat jako odpovídající nativní aplikace Microsoft Office Word nebo Microsoft Office Excel objekt, o další funkce.Existují však některé základní rozdíly mezi chování položky hostitel a host a nativní objekty Office za běhu.

Obecné informace o položky hostitel a host Přehled hostitelských položek a hostitelských ovládacích prvků.

Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni dokumentu i na úrovni aplikace v těchto aplikacích: Excel 2013 a Excel 2010; Word 2013 a Word 2010. Další informace najdete v tématu Dostupné funkce podle aplikací systému Office a typů projektu.

Programové vytvoření položky hostitel

Programové vytvoření nebo otevření dokumentu, sešitu nebo listu v době běhu pomocí objektového modelu aplikace Word nebo Excel není položka položku hostitele.Místo toho je nový objekt nativní objekt Office.Použijete-li například Documents.Add metodu k vytvoření nového dokumentu aplikace Word při běhu, je nativní Document objekt spíše než Document položku hostitele.Podobně při vytváření nového listu za běhu pomocí Worksheets.Add Metoda get nativní Worksheet objekt spíše než Worksheet položku hostitele.

Projekty na úrovni dokumentu nelze vytvořit položky hostitel v době běhu.Hostitel položky mohou být vytvořeny pouze v době návrhu v projekty na úrovni dokumentu.Další informace naleznete v tématu Hostitelská položka Document, Hostitelská položka Workbook a Hostitelská položka Worksheet.

V projekty na úrovni aplikace, můžete vytvořit Document, Workbook, nebo Worksheet hostitel položky za běhu.Další informace naleznete v tématu Rozšíření dokumentů aplikace Word a sešitů aplikace Excel v doplňcích na úrovni aplikace za běhu.

Programové vytváření ovládacích prvků hostitele

Můžete programově přidat ovládací prvky hostitel Document nebo Worksheet položku hostitele za běhu.Další informace naleznete v tématu Přidání ovládacích prvků do dokumentů Office za běhu.

Nelze přidat ovládací prvky hostitel nativní Document nebo Worksheet.

[!POZNÁMKA]

Sešity nebo dokumenty nelze programově přidat ovládací prvky hostitele: XmlMappedRange, XMLNode, a XMLNodes.

Principy typ rozdíly mezi položkami hostitele, ovládací prvky hostitel a nativní objekty Office

Pro každou položku hostitele a hostitelského ovládacího prvku je základní nativní objekt aplikace Microsoft Office Word nebo Microsoft Office Excel.Základní objekt můžete přistupovat pomocí InnerObject vlastnost položky hostitel nebo hostitelského ovládacího prvku.Je však žádným způsobem přetypovat nativní objekt Office odpovídající položka hostitel nebo host control.Pokud nativní objekt Office přetypovat na typ položky hostitel nebo host control InvalidCastException je vyvolána.

Existuje několik scénářů, kde rozdíly mezi typy položky hostitel a host a nativní objekty Office může ovlivnit váš kód.

Ovládací prvky hostiteli předávání metody a vlastnosti

V aplikaci Word nelze předat hostitelského ovládacího prvku, metodu nebo vlastnost, která vyžaduje nativní Word objekt jako parametr.Je nutné použít InnerObject vlastnost ovládacího prvku hostiteli vrátit slovo objekt pro nativní.Například můžete předat Bookmark metodu předáním objektu InnerObject vlastnost Bookmark hostiteli ovládacího prvku v metodě.

V aplikaci Excel, je nutné použít InnerObject vlastnost ovládacího prvku hostitele předat řízení hostitele metodu nebo vlastnost při metoda nebo vlastnost podkladového objektu aplikace Excel očekává.

Následující příklad vytvoří NamedRange řízení a předá jej AutoFill metoda.Kód používá InnerObject vlastnost pojmenovanou oblast vrátit podkladové sady Office Range , požaduje AutoFill metoda.

Me.Range("A1").Value2 = "Monday" 
Me.Range("A2").Value2 = "Tuesday" 

Dim dayRange As Microsoft.Office.Tools.Excel.NamedRange = _
    Me.Controls.AddNamedRange(Me.Range("A1", "A7"), "dayRange")
Me.Range("A1", "A2").AutoFill(dayRange.InnerObject, Excel.XlAutoFillType.xlFillDays)
this.Range["A1"].Value2 = "Monday";
this.Range["A2"].Value2 = "Tuesday";

Microsoft.Office.Tools.Excel.NamedRange dayRange = 
    this.Controls.AddNamedRange(this.Range["A1", "A7"], "dayRange");
this.Range["A1", "A2"].AutoFill(dayRange.InnerObject, Excel.XlAutoFillType.xlFillDays);

Návratové typy nativní Office metod a vlastností

Většina metod a vlastností položek hostitele vrátí základní nativní objekt Office, na kterém je založena položku hostitele.Například Parent vlastnost NamedRange hostiteli ovládacího prvku v aplikaci Excel vrátí Worksheet objekt spíše než Worksheet položku hostitele.Podobně Parent vlastnost RichTextContentControl hostiteli ovládacího prvku v aplikaci Word vrátí Document objekt spíše než Document položku hostitele.

Přístup k kolekce ovládacích prvků hostitele

Visual Studio Tools for Office runtime Neposkytuje jednotlivých kolekcí pro každý typ ovládacího prvku hostitele.Místo toho použijte Controls vlastnost položky hostitel iterovat přes všechny spravované ovládací prvky (hostitelský ovládací prvky a ovládací prvky model Windows Forms) v dokumentu nebo listu a potom hledat položky, které odpovídají typu hostitele prvek zajímá.Následující příklad kódu zkontroluje každý prvek v dokumentu aplikace Word a určuje, zda je ovládací prvek Bookmark.

Dim targetControl As Object 
For Each targetControl In Me.Controls

    If TypeOf (targetControl) Is Microsoft.Office.Tools.Word.Bookmark Then 
        Dim bookMark As Microsoft.Office.Tools.Word.Bookmark = _
            CType(targetControl, Microsoft.Office.Tools.Word.Bookmark)

        ' Do some work with the book mark here. 
    End If 
Next
foreach (object targetControl in this.Controls)
{
    Microsoft.Office.Tools.Word.Bookmark bookMark =
        targetControl as Microsoft.Office.Tools.Word.Bookmark;

    if (bookMark != null)
    {
        // Do some work with the bookmark here.
    }
}

Další informace o Controls vlastnost položky hostitel viz Přidání ovládacích prvků do dokumentů Office za běhu.

Objektových modelů aplikace Word a Excel obsahují vlastnosti, které zpřístupňují kolekce nativní kontroly dokumentů a listy.Spravované ovládací prvky nelze přistupovat pomocí těchto vlastností.Například není možné vytvořit výčet všech Bookmark hostiteli ovládacího prvku v dokumentu pomocí Bookmarks vlastnost Document nebo Bookmarks vlastnost Document.Tyto vlastnosti zahrnují pouze Bookmark prvky v dokumentu. neobsahují Bookmark hostit ovládací prvky v dokumentu.

Viz také

Referenční dokumentace

Worksheet.Controls

Document.Controls

Koncepty

Přehled hostitelských položek a hostitelských ovládacích prvků

Automatizace v aplikaci Word s použitím rozšířených objektů

Automatizace v aplikaci Excel s použitím rozšířených objektů

Hostitelská položka Worksheet

Hostitelská položka Workbook

Hostitelská položka Document