2014-11-03 36 views
0

所以我有一个多选项卡计算器,我正在努力,我试图让输入键集中在下一个文本框,并按下按钮运行计算,以实现功能像一个典型的电子表格可能在单元格上运行计算时。输入关键的多功能VB2010

接受按钮在表单加载上分配,并再次在选项卡更改上分配,并在其自身的作品中游泳。

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

也许是这样的?

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 
+0

谢谢,这让我走上了正确的道路。 – Jack 2014-11-03 23:06:22