Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
カスタムコントロールについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30739#CommentId85197
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
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 を使うことは問題ありません。
エラーになっているのは、おそらく別の場所のはずです。
エラーメッセージに示されているファイル名と行番号を、再度確認してみてください。
(エラー一覧のメッセージをダブルクリックすると、該当のエラー箇所にジャンプするはず)