C#文本框中怎么实现光标跳转到某行 文本框为richtextbox已知变量:selNO —— 跳转到的行数total —— 文本总行数怎么实现跳转,类似系统记事本的转到那个功能。要效率高的,我在百度上找到一个用循环写的,当文本行数较多就会卡死。如果API可以,就直接用API。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 richtextbox.SelectIndex(x, l)x就是你指定的索引位置,例如:richtextbox里面有ABCDEFG要让光标移动到D后面,x则为4l是你要选择字符串长度,要讲D后面的字符串全部选中的话l就为richtextbox.TextLength - 1你只是要移动到指定位置,而不选中,l为0就可以了参考 int totalLines= richTextBox1.GetLineFromCharIndex(richTextBox1.Text.Length - 1)+1;Console.WriteLine("max:"+maxLine);richTextBox1.Select();richTextBox1.SelectionStart = 0; 附5楼运行的全部代码。using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace TreeView{ public partial class richtextbox : Form { public richtextbox() { InitializeComponent(); } private int numoflines = 0; private void richtextbox_Load(object sender, EventArgs e) { numoflines=richTextBox1.Lines.Length; toolStripStatusLabel1.Text = "此RTB共有" + numoflines.ToString()+"行"; } private void button1_Click(object sender, EventArgs e) { if (textBox1.Text.Length < 1) { MessageBox.Show("请输入想跳至的行"); } else if(int.Parse(textBox1.Text)>numoflines) { MessageBox.Show("错误!你输入的行数大于文本框现有的行数"); } else { richTextBox1.SelectionStart = richTextBox1.GetFirstCharIndexFromLine(int.Parse(textBox1.Text) - 1); richTextBox1.SelectionLength = 0; richTextBox1.Focus(); richTextBox1.ScrollToCaret(); } } }}窗体上的控件有:富文本框richTextBox1,文本框textBox1,按钮button1,状态栏标签toolStripStatusLabel1richTextBox1是你的文本框,textBox1输入你想要跳到的行(只加了个跳到行判断没有加是否数字的判断),button1点击事件触发跳转到某行,toolStripStatusLabel1状态栏显示文本框共有多少行。 RichTextBox控件接收一种RTF格式的文本,其文字可以拥有字体、字号、颜色等特性,类似于Word。RichTextBox控件的Text属性代表其内部的所有文本,RTF属性代表Text属性对应的RTF格式的数据。RichTextBox内部将文本看成是行的集合,其Lines属性是一个字串数组,通过在Lines数组中指定一个索引,即可访问或修改特定行。RichTextBox另一个重要的属性是CharIndex,它代表从文档开头到某个字符的索引,即文档中的某个字符“到文档开头有多远”。 C# 动态添加checkbox了 【急】exe程序在客户的机器上出错时,为什么出错的form路径是开发机器上的路径? c#里面的string数组是个怎么回事? 关于闪烁的问题 msdn里面关于readerwriterlock的经典代码,偶迫切想知道这到底在干什么,哪位大鸟指教 win DataGrid 怎样修改数据,它和绑定的DataSet不同步? 手动绘制控件的刷新问题 怎样将数据集传给存储过程 有人用过jqgrid吗?求教一个通用类的问题。 有没办法用一个DataGird显示多个Oracle表单来,大家来告诉我下啊。 怎么使用独立存储器 C# Winforms中如何完全关闭线程、进程呢?
richtextbox里面有ABCDEFG
要让光标移动到D后面,x则为4
l是你要选择字符串长度,要讲D后面的字符串全部选中的话l就为richtextbox.TextLength - 1
你只是要移动到指定位置,而不选中,l为0就可以了参考
Console.WriteLine("max:"+maxLine);richTextBox1.Select();
richTextBox1.SelectionStart = 0;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;namespace TreeView
{
public partial class richtextbox : Form
{
public richtextbox()
{
InitializeComponent();
} private int numoflines = 0;
private void richtextbox_Load(object sender, EventArgs e)
{
numoflines=richTextBox1.Lines.Length;
toolStripStatusLabel1.Text = "此RTB共有" + numoflines.ToString()+"行";
} private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length < 1)
{
MessageBox.Show("请输入想跳至的行");
}
else if(int.Parse(textBox1.Text)>numoflines)
{
MessageBox.Show("错误!你输入的行数大于文本框现有的行数");
}
else
{
richTextBox1.SelectionStart = richTextBox1.GetFirstCharIndexFromLine(int.Parse(textBox1.Text) - 1);
richTextBox1.SelectionLength = 0;
richTextBox1.Focus();
richTextBox1.ScrollToCaret();
} }
}
}窗体上的控件有:富文本框richTextBox1,文本框textBox1,按钮button1,状态栏标签toolStripStatusLabel1richTextBox1是你的文本框,textBox1输入你想要跳到的行(只加了个跳到行判断没有加是否数字的判断),button1点击事件触发跳转到某行,toolStripStatusLabel1状态栏显示文本框共有多少行。