locked
FAQs: 在RichTextBox中,如何以编程的方式来放置光标到特定的行和列上? RRS feed

  • 问题

  • 为了帮助大家更好地学习 .Net Framework 技术,微软论坛技术支持团队编辑了一些列的 ".Net Framework 常见问题及解答" 精华帖。

    本帖的主题是:在RichTextBox中,如何以编程的方式来放置光标到特定的行和列上?

    如果您觉得这个帖子对您的学习、工作有所帮助,请再把这个帖子分享给你的同学、同事和朋友。

    如果您想阅读更多的 ".Net Framework 常见问题及解答",请打开索引页面:
    http://social.msdn.microsoft.com/Forums/zh-CN/2212/thread/f2a90155-c760-4d5d-ba2e-6b0e427cb6eb

     


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    2011年2月15日 9:44

答案

  • RichtextBox控件包含了“Lines”数组属性。每一个条目对应一行,每一行的条目有一个长度属性,有了这些信息,你能通过使用下面的代码,就可以放置被选择的光标。

    代码块:

    private void GoToLineAndColumn(RichTextBoxrtb, int line, int column)

      {

          rtb.Focus();

          if (line < 0 || column < 0)

          {

              rtb.SelectionStart = 0;

          }

          else

          {

              if (line >rtb.Lines.Length - 1)

              {

                  rtb.SelectionStart = rtb.GetFirstCharIndexFromLine(rtb.Lines.Length - 1)
                          + rtb.Lines[rtb.Lines.Length - 1].Length;

              }

              else

              {

                  intfirstCharIndexOfline = rtb.GetFirstCharIndexFromLine(line);

                  inttextlengthOfline;

                  textlengthOfline = rtb.Lines[line].Length;

                  if (column >textlengthOfline)

                  {

                      column = textlengthOfline;

                   }

                   rtb.SelectionStart = firstCharIndexOfline + column;

              }

    }


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    2011年2月15日 9:53