使用C#将光标移动到MsWord文本末尾?

4

这个问题听起来很简单,但我找不到任何解决方案。我想做的是将我的光标位置在MsWord中移动到文本末尾。我的代码如下:

  object StartPos = 0;
  object Endpos = 1;
  Microsoft.Office.Interop.Word.Range rng= oDoc.Range(ref StartPos, ref Endpos);
  rng.Text = "This is first line Word from C#";

输出结果为

I 这是来自 C# 的第一行文本

但我想要这样的结果

这是来自 C# 的第一行文本 I

谢谢大家

6个回答

6

非常感谢大家的回复,我似乎已经找到了一个简单的解决方案。我尝试修改了Hassan的解决方案。可能还有更简单的方法,但目前我发现这个方案可行。

object NewEndPos = rng.StoryLength-1;
        rng = oDoc.Range(ref NewEndPos, ref NewEndPos);
        rng.Select();

2

这样做怎么样?它与按下Ctrl-Shift-End相同。请注意,word是应用程序而不是文档。假定正确的活动文档已被选择。

word.Selection.EndKey(WdUnits.wdStory);

1

类似问题 - 将光标定位在 Word 文档的开头/结尾

那个答案更详细地介绍了 whichwhat。答案有点混杂在 c# 和 vb 之间,所以我在这里包括了另一个答案,它使用了稍微不同的方法去到文档的最后一部分。

我的两分钱:

//vb does this kind of thing for them
//but in c# we need an object we can pretend is null
object oMissing = System.Reflection.Missing.Value;

//Start Word and create a new document.
Word._Application oWord;
Word._Document oDoc; //whenever i read this i think 'hodor'
oWord = new Word.Application();
oWord.Visible = true;
oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
  ref oMissing, ref oMissing);

object StartPos = 0;
object Endpos = 1;

Microsoft.Office.Interop.Word.Range rng = oDoc.Range(ref StartPos, ref Endpos);
rng.Text = "This is first line Word from C#";

//object what = Word.WdGoToItem.wdGoToLine;
//I couldn't get wdGoToLine to work but wdGoToPercent was happy
object what = Word.WdGoToItem.wdGoToPercent;
object which = Word.WdGoToDirection.wdGoToLast;

oWord.Selection.GoTo(ref what, ref which, oMissing, oMissing);

这种方法略有不同,它不是告诉Word将光标移动到最后一行,而是文档的最后百分比,我将假设为100。在单行文档中,那将是行末,但如果光标在第一行(开头)并且我们告诉Word去到最后一行,什么也不会发生:我们已经在那里,在最后一行开头


1
rng= oDoc.Range(ref Endpos, ref Endpos);
rng.Select();

0
唯一需要的就是访问Word文档并找到当前范围。然后您需要找到光标的当前位置。您需要使用以下代码:
var selection = Document.Application.Resource.Range;
object position = selection.Resource.StoryLength - 1;
var range = Document.Range(ref position, ref position);
range.Select();

现在,光标位于其位置的末尾。


0
尝试这个方法:
oDoc.GoTo(ref what, ref which, ref missing, ref missing);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接