投稿者 魔界の仮面弁士  (社会人) 投稿日時 2022/5/20 18:10:38
> エンターキーを押すと次にコントロールに移動する機能を搭載したカスタムコントロールであるテキストボックスを用いてフォームを作っています。

KeyPreview プロパティを True にしておけば、TextBox 側で個別実装せずとも、
フォーム側だけで  Enter 移動を実装することができますよ。
https://dobon.net/vb/dotnet/control/enterliketab.html


> Formの中のテキストボックスのKeyPressイベントに上記の分を記載したところ
それはコーディング上のミスという可能性が高いです。

KeyPress に限りませんが、イベントハンドラーを新規作成する際に、どのような手順をとりましたか?
もしも下記の (1) だとしたら、手順が間違っています。

(1) 既存のイベントハンドラー(たとえば TextBox1_TextChanged など)を流用して、
 Handles TextBox1.TextChanged の部分を
 Handles TextBox1.KeyPress に手動で変更した。

(2) デザイン時に、コントロールを選択した状態で、プロパティウィンドウの
 稲妻⚡アイコンを選び、KeyPress イベントの欄をダブルクリックして自動生成させた。

(3) 上記 (2) の⚡で、イベント名をダブルクリックするのではなく、KeyPress イベントの欄に
 イベントハンドラー名を手動で記入し(たとえば TextBox1_KeyPress など)、Enter キーで自動生成。

(4) フォームデザイナーではなく、フォームの コード エディター側で、
 上部の 3 つのドロップダウンリストのうち、中央のボックスから TextBox1 を選択してから、
 右側のボックスで KeyPress を選択し、イベントハンドラーを自動生成。


> e.KeyCharの部分が
> エラー BC30456 'KeyChar' は 'EventArgs' のメンバーではありません。
> と出てしまいます。
> Private Sub TextBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox1.KeyPress
この宣言を見る限り、引数 e の型は EventArgs ではなく KeyPressEventArgs になっています。
そのため、この箇所で e.KeyChar を使うことは問題ありません。

エラーになっているのは、おそらく別の場所のはずです。
エラーメッセージに示されているファイル名と行番号を、再度確認してみてください。
(エラー一覧のメッセージをダブルクリックすると、該当のエラー箇所にジャンプするはず)