确定在richtextbox中点击了哪一行
Posted
技术标签:
【中文标题】确定在richtextbox中点击了哪一行【英文标题】:Determine which line is clicked in richtextbox 【发布时间】:2021-10-11 09:03:10 【问题描述】:我对 windows 窗体比较陌生,目前正在制作和应用,但我遇到了一个问题。我希望确定在富文本框中单击了哪一行。我正在使用以下代码:
private void richTextBox1_PreviewMouseDown(object sender, MouseButtonEventArgs e)
if (e.ChangedButton == MouseButton.Left)
var charPosition = richTextBox1.GetCharIndexFromPosition(Mouse.GetPosition(richTextBox1));
var linePosition = richTextBox1.GetLineFromCharIndex(charPosition);
我似乎无法弄清楚的唯一部分是 relativeTo 参数(无法从 'System.Windows.Forms.RichTextBox' 转换为 'System.Windows.IInputElement' 错误)。我该怎么办?
【问题讨论】:
这能回答你的问题吗? How to get the Caret Position from mouse clicking point in a RichTextBox? 【参考方案1】:如果您使用的是 WinForms(看起来很可疑),请使用 MouseDown 事件:
private void RichTextBox1_MouseDown(object sender, MouseEventArgs e)
if (e.Button == MouseButtons.Left)
int p = richTextBox1.GetCharIndexFromPosition(e.Location);
int line = richTextBox1.GetLineFromCharIndex(p);
// code...
【讨论】:
以上是关于确定在richtextbox中点击了哪一行的主要内容,如果未能解决你的问题,请参考以下文章