C#控制定位Word光标移动到任意行或者最后一行,取得光标位置等操作

摘要:
=document.Application.Selection)Selection=document.AApplication。选择objecta=选择。获取_信息;objectb=选择。获取_信息;objectc=选择。获取_信息;MessageBox。显示;}XIII导航到指定的行或相对行//////导航到指定行//////行号privatevoidgotoAbsoluteLine{if(select==null||selection!=document.Application.selection)selection=文档.应用程序。选择objectdummy=System.Reflection.Missing。价值objectwhat=Word.WdGoToItem。wdGoToLine;反对;ifwhich=Word.WdGoToDirection。wdGoToPrevious;elsewhich=字.WdGoToDirection。wdGoToNext;objectcount=数学。防抱死制动系统;选择转到;}14、 导航到文档privatevoidgotoLastLine的最后一行{objectdumm=System.Reflection.Missing.Value;objectwhat=WdGoToItem.wdGoToLine;objectwhich=WdGoToDirection.wdGoToLast;objectcount=999999999;thisDocument.Application.Selection.GoTo;}15、 导航到第一个字符privatevoidgotoFirstCharacter(){if(selection==null||selection!=document.Application.selection)selection=document.AApplication.selection;intoldLine=0;gotoAbsoluLine;objecta=selection.get_Information;//在(oldLine!

十一、上下左右移动光标位

private void moveLeft()

{

object moveUnit = Microsoft.Office.Interop.Word.WdUnits.wdWord;

object moveCount = 1;

object moveExtend = Microsoft.Office.Interop.Word.WdMovementType.wdExtend;

thisDocument.Application.Selection.MoveLeft(ref moveUnit, ref moveCount, ref MissingValue);

}

private void moveRight()

{

if(selection==null||selection!=document.Application.Selection)

selection=document.Application.Selection;

object dummy=System.Reflection.Missing.Value;

object count=1;

object Unit=Word.WdUnits.wdCharacter;

selection.MoveRight(ref Unit,ref count,ref dummy);

}

十二、取得当前光标位

public void GetCursor()

{

if(selection==null||selection!=document.Application.Selection)

selection=document.Application.Selection;

object a=selection.get_Information(Word.WdInformation.wdFirstCharacterLineNumber);

object b=selection.get_Information(Word.WdInformation.wdFirstCharacterColumnNumber);

object c=selection.get_Information(Word.WdInformation.wdActiveEndAdjustedPageNumber);

MessageBox.Show(a.ToString()+”行,”+b.ToString()+”列,”+c.ToString()+”页”);

}

十三、定位到指定行或相对行

/// <summary>

/// 定位到指定行

/// </summary>

/// <param name=”lineNum”>行号</param>

private void gotoAbsolutLine(int lineNum)

{

if(selection==null||selection!=document.Application.Selection)

selection=document.Application.Selection;

object dummy=System.Reflection.Missing.Value;

object what=Word.WdGoToItem.wdGoToLine;

object which=Word.WdGoToDirection.wdGoToFirst;

object count=lineNum;

selection.GoTo(ref what,ref which,ref count,ref dummy);

}

/// <summary>

/// 定位到相对行,例如+4

/// </summary>

/// <param name=”lineNum”>行数</param>

private void gotoOppositeLine(int lineNum)

{

if(selection==null||selection!=document.Application.Selection)

selection=document.Application.Selection;

object dummy=System.Reflection.Missing.Value;

object what=Word.WdGoToItem.wdGoToLine;

object which;

if(lineNum<0)

which=Word.WdGoToDirection.wdGoToPrevious;

else

which=Word.WdGoToDirection.wdGoToNext;

object count=Math.Abs(lineNum);

selection.GoTo(ref what,ref which,ref count,ref dummy);

}

十四、定位到文档最后一行

private void gotoLastLine(Document thisDocument)

{

object dummy = System.Reflection.Missing.Value;

object what = WdGoToItem.wdGoToLine;

object which = WdGoToDirection.wdGoToLast;

object count = 99999999;

thisDocument.Application.Selection.GoTo(ref what, ref which, ref count, ref dummy);

}

十五、定位到第一个字符

private void gotoFirstCharacter()

{

if(selection==null||selection!=document.Application.Selection)

selection=document.Application.Selection;

int oldLine=0;

gotoAbsolutLine(1);

object a=selection.get_Information(Word.WdInformation.wdFirstCharacterLineNumber);//得到当前行号

while(oldLine!=int.Parse(a.ToString()))//一直按右键,直到光标不再往下了为止

{

oldLine++;

moveRight();

a=selection.get_Information(Word.WdInformation.wdFirstCharacterLineNumber);

}

gotoAbsolutLine(int.Parse(a.ToString()));

}

十六、定位到最后一个字符

public void gotoLastCharacter()

{

if(selection==null||selection!=document.Application.Selection)

selection=document.Application.Selection;

gotoLastLine();

object dummy=System.Reflection.Missing.Value;

object count=99999999;

object Unit=Word.WdUnits.wdCharacter;

selection.MoveRight(ref Unit,ref count,ref dummy);

}

二十一、 取得行、列、页信息

public string WordGetRCP()

{

selection=document.Application.Selection;//wd.Selection;

object a=selection.get_Information(Word.WdInformation.wdFirstCharacterLineNumber);

object b=selection.get_Information(Word.WdInformation.wdFirstCharacterColumnNumber);

object c=selection.get_Information(Word.WdInformation.wdActiveEndAdjustedPageNumber);

return a.ToString()+”,”+b.ToString()+”,”+c.ToString();

}

免责声明:文章转载自《C#控制定位Word光标移动到任意行或者最后一行,取得光标位置等操作》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Elasticsearch 启动需要密码?docker集中化管理平台--shipyard部署下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

python None 和 NaN

python原生的None和pandas, numpy中的numpy.NaN尽管在功能上都是用来标示空缺数据。但它们的行为在很多场景下确有一些相当大的差异。由于不熟悉这些差异,曾经给我的工作带来过不少麻烦。 特此整理了一份详细的实验,比较None和NaN在不同场景下的差异。 实验的结果有些在意料之内,有些则让我大跌眼镜。希望读者看过此文后会None和NaN...

OpenStack是什么,OpenStack详解

1. OpenStack是什么 OpenStack官方的解释很官方,而且从不同角度,也有不同的理解,OpenStack可以理解为一个云操作系统 OpenStack旗下包含了一组由社区维护的开源项目,他们分别是OpenStackCompute(Nova),OpenStackObjectStorage(Swift),以及OpenStackImageServic...

java关于传值与传引用

关于java传值还是传引用的问题经常出现在一些烦人的面试题中,主要考察个人对java基础的掌握情况。 首先明确一下:本地方法中,java的参数传递都是传值。但是如果是远程调用方法时,会将对象本身传递过去 Java是本地编程多是传值,这个值包括基本值和引用值,分别对应基本类型和引用类型。基本类型就不说了。 引用类型虽然是传值,但是却表现出传引用的效果。传递...

unity3D游戏开发十四之NGUI一

转:http://blog.csdn.net/kuloveyouwei/article/details/23676039 在Unity中,可以使用代码控制其自身所携带的GUI来实现图形界面的搭建。但是这些组件的搭建效率很低,而且已经无法满足现在市场对图形用户界面美感的要求,所以,引入了NGUI来增加所要开发的图形用户界面的美感。NGUI是一个功能强大的UI...

深入理解es6(上)

一、let和const 1、let与var的区别 不存在变量提升块级作用域不允许重复声明 2、const常量 const与let一样,唯一区别在于声明的常量不能被修改 二、解构赋值 es6按照一定模式,从数组和对象中提取值,对变量进行赋值,被称为解构 1、数组的解构 "模式匹配",只要等号两边的模式相同,左边的变量就会被赋予对应的值,如果右边不是数组就会...

Scala中class、object、case class、case object区别

/** class、object、case class、case object区别 * * class 类似Java中的class; * object Scala不能定义静态成员,用定义单例对象代之; * case class被称为样例类,是一种特殊的类,常被用于模式匹配。 * * 一、class 和 object 关系: *...