开发者

keep track of richtext box text?

开发者 https://www.devze.com 2023-03-28 15:01 出处:网络
I\'m new to the VB applications.My basic background is C.I just installed VB and learning stuff from google and microsoft help center. and I\'m having fun with the things I\'m doing but I got stucked

I'm new to the VB applications.My basic background is C.I just installed VB and learning stuff from google and microsoft help center. and I'm having fun with the things I'm doing but I got stucked up at one point and thats at richtext box.Is there any way to keep track of Rich textbox text in VB? So that I can append some text when user hits new line (i.e enter ) and do some task when he hits backspace. How do i keep track of richtextbox.?

I found

      stringer = RichTextBox1.Lines(0)  to read lines
      & vbNewLine  for new line

How do i read that user hit the new line character or backspace in vb rich textbox? because as far in C i used to do like these

      if a = 13; \\ ascii for new line and 8 for backspace

I just want to do some task when user hits new line but I am unable to figure it out what the condition to be made.and Any good links for vb and documents on VB or on its wi开发者_如何转开发ndows application would be appreciated Too. Thank you in advance


You will want to link into the KeyDown event for the RichTextBox. Within this event you can modify the Text of the current line. Sample code for adding text to a line is:

Private Sub RichTextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RichTextBox1.KeyDown
    Dim textToAdd As String = " ** text to add **"

    'Fire when the Enter key is pressed
    If e.KeyCode = Keys.Enter Then
        'Get the current cursor position
        Dim cursorPos As Integer = RichTextBox1.SelectionStart

        'Get the current line index
        Dim index As Integer = RichTextBox1.GetLineFromCharIndex(cursorPos)

        'Load all the lines into a string array
        'This has to be done since editing via RichTextBox1.Lines(index) = "" doesn't always work
        Dim lines() As String = RichTextBox1.Lines

        'Add the text to the correct line
        lines(index) &= textToAdd

        'Assign the text back to the RichTextBox
        RichTextBox1.Lines = lines

        'Move the cursor to the correct position
        RichTextBox1.SelectionStart = cursorPos + textToAdd.Length
    End If
End Sub


All you need to do is check if the Enter or BackSpace key was pressed, like this:

Private Sub RichTextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RichTextBox1.KeyDown

    Select Case e.KeyCode
            Case Keys.Enter
                'Do stuff when Enter was pressed
            Case Keys.Back
                'Do stuff when BackSpace was pressed
        End Select
    End Sub

Note that Select Case is the same as the switch in C.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号