这个问题可能听起来很简单,但我无法找到任何解决方案。我想做的是将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#";
输出
我这是来自C#的第一行Word
但是我想要这样的东西
这是来自C# I
的第一行Word全部谢谢
答案 0 :(得分:4)
非常感谢大家对你的回复我似乎找到了一个简单的解决方案。我试图修改哈桑的解决方案。可能会有一个更简单的方法,但截至目前我已经找到了这个
object NewEndPos = rng.StoryLength-1;
rng = oDoc.Range(ref NewEndPos, ref NewEndPos);
rng.Select();
答案 1 :(得分:2)
这个怎么样?这与按Ctrl-Shift-End相同。请注意,word
是单词application,而不是文档。假设已经选择了正确的活动文档。
word.Selection.EndKey(WdUnits.wdStory);
答案 2 :(得分:1)
rng= oDoc.Range(ref Endpos, ref Endpos);
rng.Select();
答案 3 :(得分:1)
Similar question - Position cursor at start/end of Word document
该答案详细介绍了which
和what
。答案有点混淆在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转到最后一行,则没有任何反应:我们已经在那里,在 最后一行的 。
答案 4 :(得分:0)
试试这个方法:
oDoc.GoTo(ref what, ref which, ref missing, ref missing);