Vb.net system.windows.text代码的Telerik版本

Vb.net system.windows.text代码的Telerik版本,vb.net,winforms,telerik,Vb.net,Winforms,Telerik,当用户按下enter键时,我希望有一个分部类来管理RadTextBox之间的焦点,我正在寻找这行代码的telerik解释tbsi.KeyDown+=New KeyEventHandlerAddressOf textboxs\u KeyDown任何想法。请帮忙 Partial Public Class MstFileTruck Inherits Form Private tbs() As Telerik.WinControls.UI.RadTextBox Public Sub

当用户按下enter键时,我希望有一个分部类来管理RadTextBox之间的焦点,我正在寻找这行代码的telerik解释tbsi.KeyDown+=New KeyEventHandlerAddressOf textboxs\u KeyDown任何想法。请帮忙

Partial Public Class MstFileTruck Inherits Form

    Private tbs() As Telerik.WinControls.UI.RadTextBox

    Public Sub New()
        InitializeComponent()
        tbs = New Telerik.WinControls.UI.RadTextBox() {txtTruckNumber,   txtRegistrationNumber, txtOwnerName}
        For i As Integer = 0 To tbs.Length - 1
            tbs(i).Tag = i
            tbs(i).KeyDown += New KeyEventHandler(AddressOf textBoxes_KeyDown)
            '    'tbs(i).IsHandleCreated += New KeyEventArgs(Keys.Enter) '(AddressOf textBoxes_KeyDown)
            '    tbs(i).RootElement.KeyDownEvent.EventName(textBoxes_KeyDown) '= New KeyEventArgs(AddressOf   Telerik.WinControls.UI.RadTextBoxElement.KeyDownEvent.EventName(textBoxes_KeyDown(tbs, RootRadElement.KeyDownEvent))) '(AddressOf textBoxes_KeyDown)
        Next
        tbs(0).Focus()
    End Sub

    Private Sub textBoxes_KeyDown(sender As Object, e As KeyEventArgs)
        Dim tb As Telerik.WinControls.UI.RadTextBox = TryCast(sender, Telerik.WinControls.UI.RadTextBox)
        If tb IsNot Nothing Then
            If e.KeyCode = Keys.Enter Then
                Dim tag As Integer = CInt(tb.Tag)
                If tag = 2 Then
                    tbs(0).Focus()
                Else
                    tbs(tag + 1).Focus()
                End If
            End If
        End If
    End Sub
End Class

我不太确定你的代码应该做什么。我甚至不确定您的事件订阅是否有效,但是,以下是如何在RadTextBox的两个实例之间切换焦点:

 Private Sub RadTextBox_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles RadTextBox1.KeyDown, RadTextBox2.KeyDown
    If e.KeyCode = Keys.Enter Then
        Dim tb As RadTextBox = DirectCast(sender, RadTextBox)
        If tb.Name = "RadTextBox1" Then
            RadTextBox2.TextBoxElement.Focus()
        Else
            RadTextBox1.TextBoxElement.Focus()
        End If
    End If
End Sub
在VB中订阅事件的另一种方式是:

        AddHandler RadTextBox1.KeyDown, AddressOf RadTextBox_KeyDown

        Private Sub RadTextBox_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs)
           'your code here
        End Sub
下面是整个代码,它在.vb文件中应该是这样的

Imports Telerik.WinControls.UI

Public Class Form1

Public Sub New()

    ' This call is required by the designer.
    InitializeComponent()

    AddHandler RadTextBox1.KeyDown, AddressOf RadTextBox_KeyDown
End Sub


Private Sub RadTextBox_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles RadTextBox1.KeyDown, RadTextBox2.KeyDown
    If e.KeyCode = Keys.Enter Then
        Dim tb As RadTextBox = DirectCast(sender, RadTextBox)
        If tb.Name = "RadTextBox1" Then
            RadTextBox2.TextBoxElement.Focus()
        Else
            RadTextBox1.TextBoxElement.Focus()
        End If
    End If
End Sub

根据我去年使用Telerik时的记忆,通常情况下,使用他们的控件不需要做很多调整。我相信您正在查找的引用是ist System.Windows.UIElements或类似的东西。您知道我可以将此代码放在什么地方吗?因为当我将此代码放在窗体的类下面时,我的窗体出现了一个重大错误,它说有太多的分部类可以将代码复制到窗体中。设计器代码?确切地说,我复制代码创建一个表单并在其中添加两个文本框,即RadTextBox1和RadTextBox2。打开Form1.vb,使其看起来像上面我的答案中的最后一个代码段。