Поделиться через


DocumentBase.SelectLinkedControls - метод

Возвращает все элементы управления содержимым в документе, которые имеют ссылки на указанный настраиваемый узел XML.

Пространство имен:  Microsoft.Office.Tools.Word
Сборка:  Microsoft.Office.Tools.Word.v4.0.Utilities (в Microsoft.Office.Tools.Word.v4.0.Utilities.dll)

Синтаксис

'Декларация
Public Function SelectLinkedControls ( _
    node As CustomXMLNode _
) As ContentControls
public ContentControls SelectLinkedControls(
    CustomXMLNode node
)

Параметры

Возвращаемое значение

Тип: Microsoft.Office.Interop.Word.ContentControls
Коллекция ContentControls, в которой хранятся все элементы управления содержимым, которые имеют ссылки на указанный настраиваемый узел XML.

Примеры

В приведенном ниже примере кода в текущий документ добавляются три элемента управления обычным текстом. В примере также добавляется объект CustomXMLPart, содержащий данные о сотрудниках и связывающий два элемента управления содержимым с XML-узлами в объекте CustomXMLPart. Далее в коде возвращаются элементы управления, связанные с узлом имени сотрудника, выводится окно сообщения с количеством найденных связанных элементов управления и выполняется итерация по связанным элементам управления, чтобы вывести заголовок каждого связанного элемента управления. После выполнения данного кода должен быть возвращен один связанный элемент управления с заголовком Employee Name. Чтобы использовать этот пример, запустите его из класса ThisDocument в проекте уровня документа.

Private Sub LinkedControls()
    Me.Paragraphs.Last.Range.InsertParagraphAfter()
    Dim employeeName As Microsoft.Office.Tools.Word.PlainTextContentControl _
        = Me.Controls.AddPlainTextContentControl(Me.Paragraphs.Last.Range, _
        "employeeName")
    employeeName.Title = "Employee Name"
    Me.Paragraphs.Last.Range.InsertParagraphAfter()
    Dim employeeHireDate As  _
        Microsoft.Office.Tools.Word.PlainTextContentControl = _
        Me.Controls.AddPlainTextContentControl(Me.Paragraphs.Last.Range, _
        "employeeHireDate")
    employeeHireDate.Title = "Employee Hire Date"
    Me.Paragraphs.Last.Range.InsertParagraphAfter()
    Dim comments As Microsoft.Office.Tools.Word.PlainTextContentControl _
        = Me.Controls.AddPlainTextContentControl(Me.Paragraphs.Last.Range, _
        "comments")
    comments.Title = "Comments"

    Dim xmlString As String = _
        "<?xml version=""1.0"" encoding=""utf-8"" ?>" _
        + "<employees>" _
        + "<employee>" _
        + "<name>Karina Leal</name>" _
        + "<hireDate>1999-04-01</hireDate>" _
        + "</employee>" _
        + "</employees>"
    Dim employeeXMLPart As Office.CustomXMLPart = _
        Me.CustomXMLParts.Add(xmlString)

    employeeName.XMLMapping.SetMapping("/employees/employee/name")
    employeeHireDate.XMLMapping.SetMapping("/employees/employee/hireDate")

    Dim node As Office.CustomXMLNode = employeeXMLPart.SelectSingleNode( _
        "/employees[1]/employee[1]/name[1]")

    Dim linkedControls As Word.ContentControls = Me.SelectLinkedControls(node)

    MessageBox.Show("Number of controls linked to the " + node.XPath _
        + " node: " + linkedControls.Count.ToString())
    For Each linkedControl As Word.ContentControl In linkedControls
        MessageBox.Show("Linked control title: " + linkedControl.Title)
    Next
End Sub
private void LinkedControls()
{
    this.Paragraphs.Last.Range.InsertParagraphAfter();
    Microsoft.Office.Tools.Word.PlainTextContentControl employeeName = 
        this.Controls.AddPlainTextContentControl(this.Paragraphs.Last.Range, 
        "employeeName");
    employeeName.Title = "Employee Name";
    this.Paragraphs.Last.Range.InsertParagraphAfter();
    Microsoft.Office.Tools.Word.PlainTextContentControl employeeHireDate = 
        this.Controls.AddPlainTextContentControl(this.Paragraphs.Last.Range, 
        "employeeHireDate");
    employeeHireDate.Title = "Employee Hire Date";
    this.Paragraphs.Last.Range.InsertParagraphAfter();
    Microsoft.Office.Tools.Word.PlainTextContentControl comments =
        this.Controls.AddPlainTextContentControl(this.Paragraphs.Last.Range, 
        "comments");
    comments.Title = "Comments";

    string xmlString = 
        "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" 
        + "<employees>" 
        + "<employee>" 
        + "<name>Karina Leal</name>" 
        + "<hireDate>1999-04-01</hireDate>"             
        + "</employee>" 
        + "</employees>";
    Office.CustomXMLPart employeeXMLPart = 
        this.CustomXMLParts.Add(xmlString, missing);

    employeeName.XMLMapping.SetMapping(
        "/employees/employee/name", "", employeeXMLPart);
    employeeHireDate.XMLMapping.SetMapping(
        "/employees/employee/hireDate", "", employeeXMLPart);

    Office.CustomXMLNode node = employeeXMLPart.SelectSingleNode(
        "/employees[1]/employee[1]/name[1]");

    Word.ContentControls linkedControls = this.SelectLinkedControls(node);
    MessageBox.Show("Number of controls linked to the " + node.XPath 
                    + " node: " + linkedControls.Count.ToString());
    foreach (Word.ContentControl linkedControl in linkedControls)
    {
        MessageBox.Show("Linked control title: " + linkedControl.Title);
    }            
}

Безопасность платформы .NET Framework

См. также

Ссылки

DocumentBase Класс

Microsoft.Office.Tools.Word - пространство имен