Vb.net system.windows.text代码的Telerik版本
当用户按下enter键时,我希望有一个分部类来管理RadTextBox之间的焦点,我正在寻找这行代码的telerik解释tbsi.KeyDown+=New KeyEventHandlerAddressOf textboxs\u KeyDown任何想法。请帮忙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
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,使其看起来像上面我的答案中的最后一个代码段。