2012-08-22 92 views
2

这个问题听起来很简单,但我无法找到it.What我试图做的是将我的光标现在的位置在MSWORD到text.My代码的结束如下将我的光标移动到使用C#的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#

但是我想是这样的

这是第一行字从C#

感谢所有

回答

3

好感谢大家的反应我似乎已经找到了一个简单的Solution.I试图修改哈桑的Solution.There可能是一个更容易的方法,但以现在我发现这个

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

试试这个方法:

oDoc.GoTo(ref what, ref which, ref missing, ref missing); 
+0

它似乎没有工作。 – Rohit

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

Similar question - Position cursor at start/end of Word document

这个答案进入有关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); 

这种方法,因为它并没有告诉字将光标移动到最后一行略有不同,但最后文档,百分比我会必须假定为100.这将是单行文档中行的结尾,但如果光标位于第一行(在开始处),并且我们告诉Word转到最后一行,则不会发生任何事情:我们是已经在那里,开始最后一行

2

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

word.Selection.EndKey(WdUnits.wdStory); 
相关问题