[英]Get the current cursor position value in RichTextBox in WPF
如何在WPF中的RichTextBox
中獲取當前光標位置值?
WPF中的RichTextBox
有很多變化。
希望這段代碼可以幫到你
碼:
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.