【问题标题】:Enter key multi-functionality VB2010输入键多功能VB2010
【发布时间】:2014-11-03 22:09:47
【问题描述】:

所以我有一个正在使用的多选项卡计算器,我正在尝试让输入键聚焦下一个文本框并在按下按钮时运行计算,以实现类似于典型电子表格的功能在单元格上运行计算时。

接受按钮是在加载表单时分配的,然后是在标签更改时分配的,并且它自己可以流畅地工作。

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 个输入框之外的所有输入框)

我想我觉得我应该在上面澄清一下,因为如果它与我的问题有关,那么我还有另一罐蠕虫要处理。无论如何,有没有办法让这两个 sn-ps 存在于相同的代码和函数中?如果我以任何方式将 acceptButton 添加到表单中,它会杀死输入框的 enter 键的 KeyDown 功能。

对不起,如果这令人困惑。 tl:dr,我如何使输入键按下激活按钮并同时导航表单?

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    也许是这样的?

    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
    

    【讨论】:

      猜你喜欢
      • 2021-05-15
      • 2022-06-11
      • 1970-01-01
      • 1970-01-01
      • 2014-06-04
      • 2020-12-28
      • 2015-01-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多