そのようにイベントハンドラを直接呼び出すのは、常に悪いアプローチだと思います。
私の意見では、コードをリファクタリングし、Button_Click から呼び出したいコードを KeyPress イベントから抽出して直接呼び出す必要があります。
Private Sub TextBox1_KeyPress(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
CommonCode()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
CommonCode()
End Sub
Private Sub CommonCode()
MessageBox.Show "Hai"
End Sub
ただし、あなたのエラーは、Button1_Click で受け取った単純なものではないことをTextBox1_KeyPress
期待しているという事実にあります。の新しいインスタンスを作成してに渡すことをバイパスできますが、前述したように、これは悪い習慣です。Windows またはフレームワークが、その内部コードから発生していないイベントへの呼び出しを意味のある方法で処理するとは考えないでください。KeyPressEventArgs
EventArgs
KeyPressEventArgs
TextBox1_KeyPress
編集: KeyEventArgs のインスタンスを渡す方法を示すだけです。繰り返しますが、これはお勧めしません。
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim x = new KeyPressEventArgs("A"c)
CommonCode(e, x)
End Sub
Private Sub CommonCode(ByVal sender As Object, ByVal e KeyPressEventArgs)
MessageBox.Show "KeyPressed = " + e.KeyChar.ToString
End Sub