2016-08-26 4 views
0

現在、私は小さな計算機を構築しています。 ボタンを使用して、計算に使用する数値を設定できます。今私はキーボード入力に取り組んでいます。私は次のコードを持っていますが、アプリケーションが起動されると何も入力できません。 フォーカスがフォーム自体に設定されていないために壊れていると思いますが、これを設定する方法はわかりません。誰か助けてくれますか?フォームに重点を置く

Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress 
    Select Case e.KeyChar 
     Case Convert.ToChar(48) 
      Cijfer(Cijfer:="0") 
     Case Convert.ToChar(49) 
      Cijfer(Cijfer:="1") 
     Case Convert.ToChar(50) 
      Cijfer(Cijfer:="2") 
     Case Convert.ToChar(51) 
      Cijfer(Cijfer:="3") 
     Case Convert.ToChar(52) 
      Cijfer(Cijfer:="4") 
     Case Convert.ToChar(53) 
      Cijfer(Cijfer:="5") 
     Case Convert.ToChar(54) 
      Cijfer(Cijfer:="6") 
     Case Convert.ToChar(55) 
      Cijfer(Cijfer:="7") 
     Case Convert.ToChar(56) 
      Cijfer(Cijfer:="8") 
     Case Convert.ToChar(57) 
      Cijfer(Cijfer:="9") 
     Case Convert.ToChar(44) 
      TextOpNul() 
      If Controleren() = True Then 
      Else 
       If Not (TextBox1.Text.Contains(",")) Then 
        TextBox1.Text += "," 
       End If 
      End If 
     Case Convert.ToChar(47) 
      If Controleren() = True Then 
      Else 
       TekenKnop(TekenNr:=1) 
      End If 
     Case Convert.ToChar(42) 
      If Controleren() = True Then 
      Else 
       TekenKnop(TekenNr:=2) 
      End If 
     Case Convert.ToChar(45) 
      If Controleren() = True Then 
      Else 
       TekenKnop(TekenNr:=3) 
      End If 
     Case Convert.ToChar(43) 
      If Controleren() = True Then 
      Else 
       TekenKnop(TekenNr:=4) 
      End If 
     Case Convert.ToChar(13) 
      Button11_Click(Nothing, Nothing) 
     Case Convert.ToChar(8) 
      Button17_Click(Nothing, Nothing) 
    End Select 
End Sub 

答えて

0

を行うために必要なすべてです

。これにより、フォーカスが子コントロールに設定されている場合でも、フォームがキープレスを受け取るようになります。

Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles MyBase.Load 
    Me.KeyPreview = True 
End Sub 
+0

@woutervk:聞いてうれしい!あなたのプロジェクトに幸運を祈る! –

+0

しかし、今私が押したときに私はそれを与えた機能を起動する代わりに私が入力を押して選択されたをクリックしてfocustボタンを入力します。 – woutervk

+0

私はenterキーで問題を解決しました。フォームのロードイベントに、すべてのボタンのTabStopをfalseに設定しました。 – woutervk

0

MyControl.Select();あなたはデザイナーでか、そのKeyPreview property Trueに設定することができ、フォームのLoadイベントに:)

+0

問題は、フォームの子コントロールの1つにフォーカスが当てられていることです。彼はフォーム上で 'Select()'を呼び出すことはできません。なぜなら、それはフォーカスをそれだけに移動するのではなく、いつ呼び出すのかも気にしないからです。 –

関連する問題