1. 获得光标所在的行号
  2. 获得光标所在的列号
  3. 设置光标到指定行号
  4. 设置光标到指定列号

http://www.huifangseo.com/blog/6/7.html

获得光标所在的行号和列号

方法1

  1. int SelStart = richTextBox1.SelectionStart;
  2. int Line = + richTextBox1.GetLineFromCharIndex(SelStart); //行值
  3. int Column = + SelStart - (richTextBox1.GetFirstCharIndexFromLine(Line - ));//列值
  4. Text = string.Format("行{0} 列{1}", Line, Column);

方法2

  1. using System.Runtime.InteropServices;
  2.  
  3. private int EM_LINEINDEX = 0x00BB;
  4. private int EM_LINEFROMCHAR = 0x00C9;
  5.  
  6. [DllImport("user32.dll", EntryPoint = "SendMessage")]
  7. public static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
  8.  
  9. public Point GetCaretPosition(TextBoxBase editControl)
  10. {
  11. int charIndex = (int)SendMessage(editControl.Handle, EM_LINEINDEX, -, );//行值
  12. int lineIndex = (int)SendMessage(editControl.Handle, EM_LINEFROMCHAR, charIndex, );//列值
  13. return new Point(editControl.SelectionStart - charIndex, lineIndex);
  14. }
  1. private void button2_Click(object sender, EventArgs e)
  2. {
  3. Point pt = GetCaretPosition(richTextBox1);
  4. Text = string.Format("行{0} 列{1}", pt.X + , pt.Y+);
  5. }

http://bbs.csdn.net/topics/360049737

设置光标到指定行号

方法1 GetFirstCharIndexFromLine

  1. //转到第三行
  2. int Line = ;
  3. richTextBox1.SelectionStart = richTextBox1.GetFirstCharIndexFromLine(Line - );
  4. richTextBox1.SelectionLength = ;
  5. richTextBox1.ScrollToCaret();
  6. richTextBox1.Focus();

方法2 SendMessage

  1. //转到第3行
  2. int Line = ;
  3. richTextBox1.SelectionStart = SendMessage(richTextBox1.Handle, EM_LINEINDEX, Line - , );
  4. richTextBox1.SelectionLength = ;
  5. richTextBox1.ScrollToCaret();
  6. richTextBox1.Focus();

设置光标到指定列号

先转到指定行号,然后 加上当前光标的列号 richTextBox1.SelectionStart

  1. private void jumpColumn(int Column)
  2. {
  3. int Line = Column;
  4.  
  5. int charIndex = (int)SendMessage(richTextBox1.Handle, EM_LINEINDEX, Line - , );
  6. int lineIndex = charIndex + (int)SendMessage(richTextBox1.Handle, EM_LINEFROMCHAR, charIndex, );
  7.  
  8. richTextBox1.SelectionStart = lineIndex;
  9. }
  1. private void button4_Click(object sender, EventArgs e)
  2. {
  3. //转到第5行 第5列
  4. richTextBox1.Focus();
  5. jumpColumn();
  6. }

RichtextBox 行和列的更多相关文章

  1. 【jQuery 冻结任意行列】冻结任意行和列的jQuery插件

    实现原理: 创建多个div,div之间通过css实现层叠,每个div放置当前表格的克隆.例如:需要行冻结时,创建存放冻结行表格的div,通过设置z-index属性和position属性,让冻结行表格在 ...

  2. php实例源码之获取mysql表中所有行和列

    本文章向大家介绍php获取mysql表中所有行和列的源码,主要使用到mysql_num_rows和mysql_fetch_row等php的数据库操作函数,该实例有助于大家熟悉PHP mysql数据库编 ...

  3. POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取

    第二讲 1.创建一个时间格式的单元格 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet=wb.createSheet("第一个 ...

  4. Excel单元格所在的行和列变色

    网友问到如何通过移动光标选择单元格,所在的行和列变色.如每次输入价格的时候,想想在横竖方向上有颜色标识,这样方便对照输入价格 . 这里可以使用窗体的Worksheet_SelectionChange ...

  5. 【C#】Excel导出合并行和列并动态加载行与列

    简单的Excel导出比较好做,只要设置表头,循环在表格中赋值添加数据即可,但是如果表头是不固定的,并且个数是不确定的,这就需要根据查询出数据的特点来添加导出了. 导出效果图: 如上图所示,商品的个数是 ...

  6. C#中关于DataGridView行和列的背景色-前景色设置

    关于DataGridView行和列的背景色-前景色设置 1.设定DataGridView全部单元格的Style  DataGridView内所有单元格的Style变更,可以使用DataGridView ...

  7. python excel操作 练习-#操作单列 #操作A到C列 #操作1到3行 #指定一个范围遍历所有行和列 #获取所有行 #获取所有列

    ##操作单列#操作A到C列#操作1到3行#指定一个范围遍历所有行和列#获取所有行#获取所有列 #coding=utf-8 from openpyxl import Workbook wb=Workbo ...

  8. jquery获取td所在的行和列

    今天在做项目时.遇到一个须要获取第几行第几列的问题. 后来.网上找了找资料,整理了此文.(使用jquery的preAll()获取列) 代码例如以下: <!DOCTYPE html PUBLIC ...

  9. 对Excle的行和列进行检查 单元格类型转换代码 ;

    对Excle的行和列进行检查  转换代码 : ** * 导入信息 */ @Override public List<Object> add(HttpServletRequest reque ...

随机推荐

  1. 从头搭建Spring MVC

    1.拷贝jar文件 2.填充Web.xml 在/WEB-INF/web.xml中写入如下内容: <?xml version="1.0" encoding="UTF- ...

  2. Socket实现简单的聊天通信

    最近学习了Socket后,感觉Socket挺好玩的,在博客中看到socket在实时聊天功能的很强大,于是乎就做了一个简单的聊天功能,今天贴出来,能够与大家一起共享,有不对之处,能够给予指出,谢谢! 服 ...

  3. Android源码学习之装饰模式应用

    首先得了解最基础的装饰器模式 参考 设计模式之八 --- 装饰模式(Decorator) 参考链接:http://blog.csdn.net/cjjky/article/details/7478788 ...

  4. rabbitmq 测试

    --*-- import pika import datetime connection = pika.BlockingConnection(pika.ConnectionParameters( 'l ...

  5. Java多线程初学者指南(12):使用Synchronized块同步变量

    我们可以通过synchronized块来同步特定的静态或非静态方法.要想实现这种需求必须为这些特性的方法定义一个类变量,然后将这些方法的代码用synchronized块括起来,并将这个类变量作为参数传 ...

  6. 【原创】Matlab中plot函数全功能解析

    [原创]Matlab中plot函数全功能解析 该帖由Matlab技术论(http://www.matlabsky.com)坛原创,更多精彩内容参见http://www.matlabsky.com 功能 ...

  7. 使用libsvm对MNIST数据集进行实验

    使用libsvm对MNIST数据集进行实验 在学SVM中的实验环节,老师介绍了libsvm的使用.当时看完之后感觉简单的说不出话来. 1. libsvm介绍 虽然原理要求很高的数学知识等,但是libs ...

  8. [转贴]Windows下gSoap交叉编译环境的搭建

    本人直接就用过gSoap,它是用以C/C++写webservice的利器     交叉编译的时候,有两个很关键的程序:         soapcpp2.exe         wsdl2h.exe ...

  9. 制作LOGO的35种方法

    A logo design is really a graphical element (ideogram, symbol, emblem, icon, sign) that, along with ...

  10. WordPress Complete Gallery Manager插件‘upload-images.php’任意文件上传漏洞

    漏洞名称: WordPress Complete Gallery Manager插件‘upload-images.php’任意文件上传漏洞 CNNVD编号: CNNVD-201309-377 发布时间 ...