Sdílet prostřednictvím


Programová omezení položek hostitel a Host ovládací prvky

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 ovládací prvky hostitel a Host položky.

Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni dokumentu i na úrovni aplikace v následujících aplikacích: Excel 2013 a Excel 2010, Word 2013 a Word 2010. Další informace naleznete v tématu Funkce aplikace 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í Microsoft.Office.Interop.Word.Document objekt spíše než Microsoft.Office.Tools.Word.Document položku hostitele.Podobně při vytváření nového listu za běhu pomocí Worksheets.Add Metoda get nativní Microsoft.Office.Interop.Excel.Worksheet objekt spíše než Microsoft.Office.Tools.Excel.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 Položku hostitele dokumentu, Položky sešitu hostitele a Položku hostitele listu.

V projekty na úrovni aplikace, můžete vytvořit Microsoft.Office.Tools.Word.Document, Microsoft.Office.Tools.Excel.Workbook, nebo Microsoft.Office.Tools.Excel.Worksheet hostitel položky za běhu.Další informace naleznete v tématu Rozšíření dokumenty aplikace Word a Excel v doplňky úroveň aplikace v době spuštění.

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

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

Nelze přidat ovládací prvky hostitel nativní Microsoft.Office.Interop.Word.Document nebo Microsoft.Office.Interop.Excel.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.

ms178779.collapse_all(cs-cz,VS.110).gifOvlá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 Microsoft.Office.Interop.Word.Bookmark metodu předáním objektu InnerObject vlastnost Microsoft.Office.Tools.Word.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ří Microsoft.Office.Tools.Excel.NamedRange řízení a předá jej AutoFill metoda.Kód používá InnerObject vlastnost pojmenovanou oblast vrátit podkladové sady Office Microsoft.Office.Interop.Excel.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);

ms178779.collapse_all(cs-cz,VS.110).gifNá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í Microsoft.Office.Interop.Excel.Worksheet objekt spíše než Microsoft.Office.Tools.Excel.Worksheet položku hostitele.Podobně Parent vlastnost RichTextContentControl hostiteli ovládacího prvku v aplikaci Word vrátí Microsoft.Office.Interop.Word.Document objekt spíše než Microsoft.Office.Tools.Word.Document položku hostitele.

ms178779.collapse_all(cs-cz,VS.110).gifPří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 Microsoft.Office.Tools.Word.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ů sady Office v době spuštění.

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 Microsoft.Office.Tools.Word.Bookmark hostiteli ovládacího prvku v dokumentu pomocí Bookmarks vlastnost Microsoft.Office.Interop.Word.Document nebo Bookmarks vlastnost Microsoft.Office.Tools.Word.Document.Tyto vlastnosti zahrnují pouze Microsoft.Office.Interop.Word.Bookmark prvky v dokumentu. neobsahují Microsoft.Office.Tools.Word.Bookmark hostit ovládací prvky v dokumentu.

Viz také

Referenční dokumentace

Worksheet.Controls

Document.Controls

Koncepty

Přehled ovládací prvky hostitel a Host položky

Automatizace aplikace Word pomocí rozšířené objekty

Automatizace aplikace Excel pomocí rozšířené objekty

Položku hostitele listu

Položky sešitu hostitele

Položku hostitele dokumentu