输入关键的多功能VB2010

时间:2014-11-03 22:09:48

标签: vb.net

所以我有一个我正在研究的多标签计算器,我正在尝试让输入键聚焦到下一个文本框并在按下按钮上运行计算,以便像典型的电子表格那样运行在细胞上运行计算时。

接受按钮是在表单加载时分配的,并且在选项卡更改时分配,并且在它自己的工作中也是如此。

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键按下激活按钮并同时导航表格?

1 个答案:

答案 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