所以我有一个我正在研究的多标签计算器,我正在尝试让输入键聚焦到下一个文本框并在按下按钮上运行计算,以便像典型的电子表格那样运行在细胞上运行计算时。
接受按钮是在表单加载时分配的,并且在选项卡更改时分配,并且在它自己的工作中也是如此。
Private Sub CalcTabs_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CalcTabs.SelectedIndexChanged
If CalcTabs.SelectedIndex = 0 Then
AcceptButton = calcButton
ElseIf CalcTabs.SelectedIndex = 1 Then
AcceptButton = calcButtonBuy
End If
我在输入框中编码了按键事件,没有鼠标导航
Private Sub priceTritBox_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles priceTritBox.KeyDown
If e.KeyData = (Keys.Return) Then
e.SuppressKeyPress = True
pricePyerBox.Focus()
End If
If e.KeyData = Keys.Up Then
e.SuppressKeyPress = True
npcStandingBox.Focus()
End If
If e.KeyData = (Keys.Down) Then
e.SuppressKeyPress = True
pricePyerBox.Focus()
End If
End Sub
我选择使用.focus()而不是tabindex,因为在使用tabindex时,我似乎无法在通过分配的8个框切换后将光标保持在正确的文本框中。 (表格的这个标签上有56个文本框,只有8个需要编辑。所以我想我说的是当我使用tabindex时它会在框中循环一次然后停在按钮上。尽管我尽最大努力从tabindex中删除除8个输入框之外的所有内容,但这仍然是
我想我觉得我应该在上面澄清一下,因为如果它与我的问题有关,那么我还有另外一些蠕虫需要处理。无论如何,有没有办法让这两个片段存在于相同的代码和功能中?如果我以任何方式将acceptButton添加到表单,它会杀死输入框的回车键的KeyDown功能。
很抱歉,如果这令人困惑。 tl:dr,如何按Enter键按下激活按钮并同时导航表格?
答案 0 :(得分:0)
也许是这样的?
Private Sub OnKeyDownHandler(ByVal sender As Object, ByVal e As KeyEventArgs)
If (e.Key = Key.Return) Then
AcceptButton.Click()
End If
Me.tabcontrolname.SelectedTab = nameofthetab
End Sub