文本框为richtextbox已知变量:
selNO —— 跳转到的行数
total —— 文本总行数怎么实现跳转,类似系统记事本的转到那个功能。
要效率高的,我在百度上找到一个用循环写的,当文本行数较多就会卡死。
如果API可以,就直接用API。

解决方案 »

  1.   

    richtextbox.SelectIndex(x, l)x就是你指定的索引位置,例如:
    richtextbox里面有ABCDEFG
    要让光标移动到D后面,x则为4
    l是你要选择字符串长度,要讲D后面的字符串全部选中的话l就为richtextbox.TextLength - 1
    你只是要移动到指定位置,而不选中,l为0就可以了参考
      

  2.   

    int totalLines= richTextBox1.GetLineFromCharIndex(richTextBox1.Text.Length - 1)+1;
    Console.WriteLine("max:"+maxLine);richTextBox1.Select();
    richTextBox1.SelectionStart = 0;
      

  3.   

    附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状态栏显示文本框共有多少行。
      

  4.   

    RichTextBox控件接收一种RTF格式的文本,其文字可以拥有字体、字号、颜色等特性,类似于Word。RichTextBox控件的Text属性代表其内部的所有文本,RTF属性代表Text属性对应的RTF格式的数据。RichTextBox内部将文本看成是行的集合,其Lines属性是一个字串数组,通过在Lines数组中指定一个索引,即可访问或修改特定行。RichTextBox另一个重要的属性是CharIndex,它代表从文档开头到某个字符的索引,即文档中的某个字符“到文档开头有多远”。