簡體   English   中英

獲取WPF中RichTextBox中的當前光標位置值

[英]Get the current cursor position value in RichTextBox in WPF

如何在WPF中的RichTextBox中獲取當前光標位置值?

WPF中的RichTextBox有很多變化。

看一下CaretPosition屬性。

這獲得(或設置)輸入插入符的位置。

另外還有Selection屬性。 這將返回一個對象,其中包含有關所選文本的信息,包括它的“ Start和“ End

希望這段代碼可以幫到你

碼:

private static int EM_LINEINDEX = 0xbb;
[DllImport("user32.dll")]
extern static int SendMessage(IntPtr hwnd, int message, int wparam, int lparam);
private void UpdateCaretPos()
{
  int line, col, index;
  index = rtfText.SelectionStart;
  line = rtfText.GetLineFromCharIndex(index);
  col = index - SendMessage(rtfText.Handle, EM_LINEINDEX, -1, 0);
  panCaret.Text = (++line).ToString() + ", " + (++col).ToString();
}
private void rtfText_TextChanged(object sender, EventArgs e)
{
  UpdateCaretPos();
}
private void rtfText_KeyDown(object sender, EventArgs e)
{
  UpdateCaretPos();
}

private void rtfText_KeyUp(object sender, EventArgs e)
{
  UpdateCaretPos();
}

問候

卡蘭沙阿

   private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Back)
    {
        var z = this.richTextBox1.SelectionStart;
        var r = richTextBox1.Find(" ", 0, z, RichTextBoxFinds.None | RichTextBoxFinds.Reverse);
        var q = this.richTextBox1.Text.Substring(r + 1, z - r - 1);
        switch (q)
        {
            case "test":
                this.richTextBox1.SelectionStart = r + 1;
                this.richTextBox1.SelectionLength = z - r - 1;
                this.richTextBox1.SelectionColor = Color.Black;
                this.richTextBox1.SelectionStart += this.richTextBox1.SelectionLength;
                this.richTextBox1.SelectionLength = 0;
                //e.Handled = true;
                break;
            default:
                this.richTextBox1.SelectionStart = z;
                break;
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM