C# 之 Word光标移动 GoTo 方法
对于 Document 或 Range对象:返回一个 Range对象,该对象代表指定项(例如页、书签或域)的开始位置。
对于 Selection对象:将插入点移至指定项前面的字符位置,并返回一个 Range对象(但 wdGoToGrammaticalError、wdGoToProofreadingError 或 wdGoToSpellingError 常量除外)。
使用方法: expression.GoTo(What, Which, Count, Name)
Range GoTo(ref object What = Type.Missing, ref object Which = Type.Missing, ref object Count = Type.Missing, ref object Name = Type.Missing); Range GoToEditableRange(ref object EditorID = Type.Missing); Range GoToNext(WdGoToItem What); Range GoToPrevious(WdGoToItem What);
C#示例:WordDoc.Application.Selection.GoTo(ref what, ref which, ref count, ref name);
1. expression 必需。该表达式返回“应用于”列表中的一个对象。
2. What Variant 类型,可选。指定区域或所选内容要移动到的项的类别。可以是下列 WdGoToItem 常量之一。
[1]wdGoToBookmark 书签
[2]wdGoToComment
[3]wdGoToEndnote 尾注
[4]wdGoToEquation
[5]wdGoToField
[6]wdGoToFootnote 脚注
[7]wdGoToGrammaticalError
[8]wdGoToGraphic
[9]wdGoToHeading 标题
[10]wdGoToLine 行
[11]wdGoToObject
[12]wdGoToPage 页
[13]wdGoToPercent
[14]wdGoToProofreadingError
[15]wdGoToRevision
[16]wdGoToSection
[17]wdGoToSpellingError
[18]wdGoToTable 表格
3. Which Variant 类型,可选。指定区域或所选内容要移动到的项。可以是下列 WdGoToDirection 常量之一。
[1]wdGoToAbsolute 绝对位置
[2]wdGoToFirst 第一个位置
[3]wdGoToLast 最后一个位置
[4]wdGoToNext 下一个位置
[5]wdGoToPrevious 前一个位置
[6]wdGoToRelative 相对当前的位置下移
下列示例功能相等,都将所选内容移动到文档中的第一个标题。
//将光标移动到第一个标题位置 //方式1 object what = WdGoToItem.wdGoToHeading; object which = WdGoToDirection.wdGoToFirst; WordDoc.Application.Selection.GoTo(ref what, ref which); //方式2 object what = WdGoToItem.wdGoToHeading; object which = WdGoToDirection.wdGoToAbsolute; object count = 1; WordDoc.Application.Selection.GoTo(ref what, ref which, ref count);
4. Count Variant 类型,可选。文档中的项数。默认值是 1。下面的示例将所选内容移至文档中的第三行。
//将光标移动到第三行位置 object what = WdGoToItem.wdGoToLine; object which = WdGoToDirection.wdGoToAbsolute; object count = 3; WordDoc.Application.Selection.GoTo(ref what, ref which, ref count);
只有正数是有效的。若要指定一个在该区域或所选内容之前的项,可将 Which参数指定为 wdGoToPrevious,并指定一个 Count 值。下面的示例将所选内容向上移动两行。
//将光标前移动两行位置 object what = WdGoToItem.wdGoToLine; object which = WdGoToDirection.wdGoToPrevious; object count = 2; WordDoc.Application.Selection.GoTo(ref what, ref which, ref count);
5. Name Variant 类型,可选。如果 What参数是 wdGoToBookmark、wdGoToComment、wdGoToField 或 wdGoToObject,则本参数指定名称。
//将光标前移动移至下一个 DATE 域。 object what = WdGoToItem.wdGoToField; object which = System.Reflection.Missing.Value; object count = System.Reflection.Missing.Value; object name = "Date"; WordDoc.Application.Selection.GoTo(ref what, ref which, ref count, ref name);
注意: 将 GoTo方法用于 wdGoToGrammaticalError、wdGoToProofreadingError 或 wdGoToSpellingError 常量时,返回的 Range对象中包括所有含语法或拼写错误文本。
示例:
将所选内容移至下一个表格的第一个单元格。
//将光标前移动移至下一个表格的第一个单元格。 object what = WdGoToItem.wdGoToTable; object which = WdGoToDirection.wdGoToNext; WordDoc.Application.Selection.GoTo(ref what, ref which);
本示例将插入点移至活动文档第五个尾注引用标记的前面。
if(WordDoc.Endnotes.Count >= 5) { //将光标前移动移至活动文档第五个尾注引用标记的前面。 object what = WdGoToItem.wdGoToEndnote; object which = WdGoToDirection.wdGoToAbsolute; object count = 5; WordDoc.Application.Selection.GoTo(ref what, ref which, ref count); }
本示例将range设置为等于活动文档中第一个脚注引用标记。
if(WordDoc.Footnotes.Count >= 1 ) { //将光标前移动移至活动文档第五个尾注引用标记的前面。 object what = WdGoToItem.wdGoToFootnote; object which = WdGoToDirection.wdGoToFirst; Range range = WordDoc.Application.Selection.GoTo(ref what, ref which); object unit = wdCharacter; range.Expand(ref unit); }
本示例将所选内容向下移动四行。
//将光标后移动三行位置 object what = WdGoToItem.wdGoToLine; object which = WdGoToDirection.wdGoToRelative; object count = 3; WordDoc.Application.Selection.GoTo(ref what, ref which, ref count);
本示例将所选内容向后移动两页。
//将光标前移动两页位置 object what = WdGoToItem.wdGoToPage; object which = WdGoToDirection.wdGoToPrevious; object count = 2; WordDoc.Application.Selection.GoTo(ref what, ref which, ref count);