3

这个问题可能听起来很简单,但我找不到任何解决方案。我想做的是将 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# 的第一行 Word

但是我想要这样的东西

这是 C# I中的第一行 Word

谢谢大家

4

5 回答 5

4

好吧,谢谢大家的回复我似乎找到了一个简单的解决方案。我尝试修改哈桑的解决方案。可能有一个更简单的方法,但到目前为止我已经找到了

object NewEndPos = rng.StoryLength-1;
        rng = oDoc.Range(ref NewEndPos, ref NewEndPos);
        rng.Select();
于 2012-08-23T04:01:42.133 回答
3

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

word.Selection.EndKey(WdUnits.wdStory);
于 2012-08-23T02:19:26.050 回答
1
rng= oDoc.Range(ref Endpos, ref Endpos);
rng.Select();
于 2012-08-22T05:36:32.360 回答
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。那将是一行的结尾-line 文档,但是如果光标在第一行(在开头)并且我们告诉 Word 转到最后一行,则什么也不会发生:我们已经在最后一行的开头

于 2012-08-22T06:08:49.677 回答
0

试试这个方法:

oDoc.GoTo(ref what, ref which, ref missing, ref missing);
于 2012-08-22T05:33:59.583 回答