2014-11-03 49 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