例如,我有一个包含以下内容的文本框:
aaa
bbb
ccc
现在,当我点击第一行的a中的一个时,我希望它自动选择整个然后将其复制到另一个文本框,我将如何绕过这样做。
只是为了澄清,如果我在第一行选择a,aaa将被复制到另一个文本框。
顺便说一下,这是一个Rich文本框。
我将代码的开头放在下面,因为它不允许我出于某种原因发布问题。
Private void richTextBox1_MouseClick(object sender, MouseEventArgs e)
{
}
答案 0 :(得分:0)
试试这个
this.textBox1.GetLineFromCharIndex(this.textBox1.SelectionStart) + 1;
答案 1 :(得分:0)
// now you need to know what character index starts that line
var start = textBox.GetFirstCharIndexOfCurrentLine();
// and with the line already in hand we can calculate the ending index
var end = start + textBox.Lines(textBox.GetLineFromCharIndex(start)).Length;
// now select that range
textBox.Select(start, end);
答案 2 :(得分:0)
我试图用RichTextBox控件做类似的事情,然后我很高兴地发现了ShowSelectionMargin属性。设置为True时,它会为您提供一个左边距,您可以单击该边距来选择整行(这恰好是我想要的行为)。
不完全是OP所要求的,但也许与寻求此类功能的其他人相关。
答案 3 :(得分:0)
Public Sub SelectFullLine(ByVal sender As TextBox)
Dim box = CType(sender, TextBox)
box.Focus()
Dim b = box.GetFirstCharIndexOfCurrentLine()
While box.GetPositionFromCharIndex(box.GetFirstCharIndexOfCurrentLine()).Y = box.GetPositionFromCharIndex(b).Y
b = b + 1
End While
If box.Text.Chars(b - 1) = Chr(10) Then
b = b - box.GetFirstCharIndexOfCurrentLine() - 1
Else
b = b - box.GetFirstCharIndexOfCurrentLine()
End If
box.Select(box.GetFirstCharIndexOfCurrentLine(), b)
End Sub