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
)
参数
- node
类型:Microsoft.Office.Core.CustomXMLNode
内容控件链接到的 CustomXMLNode。
返回值
类型:Microsoft.Office.Interop.Word.ContentControls
一个 ContentControls 集合,包含链接到指定自定义 XML 节点的内容控件。
示例
下面的代码示例将在当前文档中添加三个纯文本内容控件。 该示例还将添加一个包含雇员数据的 CustomXMLPart,并将其中的两个内容控件链接至 CustomXMLPart 中的 XML 节点。 接下来,该代码将获取链接至“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 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见通过部分受信任的代码使用库。