多行文本框中的当前行

时间:2009-02-11 22:33:13

标签: .net user-controls

我有自己的自定义TextBox控件,它继承自System.Windows.Forms.TextBox。我已经覆盖了OnKeyDown方法,因为如果用户按向上或向下键,我想选择上一个或下一个控件。

    Protected Overrides Sub OnKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs)

    MyBase.OnKeyDown(e)

    If e.KeyCode = Keys.Up Then
        If Not Multiline Then
            Me.FindForm().SelectNextControl(Me, False, True, True, True)
        Else
            'TODO: If the current line is the first one, select the previous control
        End If
    ElseIf e.KeyCode = Keys.Down Then
        If Not Multiline Then
            Me.FindForm().SelectNextControl(Me, True, True, True, True)
        Else
            'TODO: If the current line is the last one, select the next control
        End If
    End If

End Sub

在多行文本框中,有什么更好的方法可以知道我是在第一行还是最后一行?

非常感谢

1 个答案:

答案 0 :(得分:3)

这很糟糕,但应该可以胜任。

    If Me.Text.IndexOf(Environment.NewLine, 0, Me.SelectionStart) = -1 Then
        'no new lines before
    End If

    If Me.Text.IndexOf(Environment.NewLine, SelectionStart) = -1 Then
        'no new lines after
    End If