【发布时间】: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