English 中文(简体)
如何在鼠标单击的 RichTextBox 中选择行?
原标题:How to select a line in a RichTextBox on a mouse click?

在我用户界面中有一个只读的 RichTextBox 。 我想把它做成这样, 当我点击鼠标的一行文字时, 它会选择或突出显示整个行。 只有一条被单击的行 。

你是怎么做到的? 怎么办到的?

最佳回答

RichTextBox 拥有你所需要的所有方法, 您只需要多个方法。 首先, 您需要将鼠标位置映射为字符索引 :

Private Sub RichTextBox1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
    Dim box = DirectCast(sender, RichTextBox)
    Dim index = box.GetCharIndexFromPosition(e.Location)

然后您需要将字符索引映射为行 :

    Dim line = box.GetLineFromCharIndex(index)

然后,你需要找出线的起点:

    Dim lineStart = box.GetFirstCharIndexFromLine(line)

然后,你需要找出它的结束之处, 也就是下一行的起始点减去一行:

    Dim lineEnd = box.GetFirstCharIndexFromLine(line + 1) - 1

然后,你必须作出选择:

    box.SelectionStart = lineStart
    box.SelectionLength = lineEnd - lineStart

摘要:

Private Sub RichTextBox1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles RichTextBox1.MouseDown
    Dim box = DirectCast(sender, RichTextBox)
    Dim index = box.GetCharIndexFromPosition(e.Location)
    Dim line = box.GetLineFromCharIndex(index)
    Dim lineStart = box.GetFirstCharIndexFromLine(line)
    Dim lineEnd = box.GetFirstCharIndexFromLine(line + 1) - 1
    box.SelectionStart = lineStart
    box.SelectionLength = lineEnd - lineStart
End Sub
问题回答

只要在单击事件处理器时使用以下代码即可

SendKeys.Send("{HOME}+{END}")




相关问题
Is Shared ReadOnly lazyloaded?

I was wondering when I write Shared ReadOnly Variable As DataType = New DataType() Or alternatively Shared ReadOnly Variable As New DataType() Is it lazy loaded or as the instance initializes? ...

Entertaining a baby with VB.NET

I would like to write a little application in VB.NET that will detect a baby s cry. How would I get started with such an application?

Choose Enter Rather than Pressing Ok button

I have many fields in the page and the last field is a dropdown with list of values. When I select an item in a dropdown and press Enter, it doesn t do the "Ok". Instead I have to manually click on Ok ...

ALT Key Shortcuts Hidden

I am using VS2008 and creating forms. By default, the underscore of the character in a textbox when using an ampersand is not shown when I run the application. ex. "&Goto Here" is not ...

Set Select command in code

On button Click I want to Set the Select command of a Gridview. I do this and then databind the grid but it doesn t work. What am i doing wrong? protected void bttnView_Click(object sender, ...

Hover tooltip on specific words in rich text box?

I m trying to create something like a tooltip suddenly hoovering over the mouse pointer when specific words in the richt text box is hovered over. How can this be done?

热门标签