• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【VB】テキストボックスのキーハンドルについて)

【VB】テキストボックスのキーハンドルについて

このQ&Aのポイント
  • Visual Basic初心者がテキストボックスのキーハンドルについて困っています。
  • テキストボックスでCtrl+Spaceキーを押すとテキストの補間を行いたいです。
  • しかし、プログラムをコンパイルすると「HANDLES 句には、それを含む型または基本型の1つで定義されたWithEvents変数が必要です」というエラーが出ます。

質問者が選んだベストアンサー

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

まず、質問の内容とは違いますが、 提示のコードでは、最後から2行目に  End Sub が抜けているのでその時点でコンパイルエラーです。 >「HANDLES 句には、それを含む型または基本型の 1 つで定義された WithEvents 変数が必要です。」 http://msdn.microsoft.com/ja-jp/library/32787dt6(v=VS.100).aspx 画面上のコントロールをイベントの関数と結びつけるのが HANDLES 句です。 そこでエラーが出てる事からコントロールと結びつけができていないと予想できます。 > Handles 句に WithEvents 変数が指定されませんでした。(MSDN より抜粋) 「WithEvents 変数」というのはデザイン画面でコントロールを配置した時点で コントロール名と同じものが自動で宣言されています。(場所は InitializeComponent 内) ここまで分かれば、エラーメッセージの通りです。デザイン画面で配置した コントロール名が間違っているのではないでしょうか。 つまり、 >(テキストボックスは"MainText"という名前で作成してあります。) 作成したと思い込んでるだけで、スペルミス等で画面上に MainText が存在しない (もしくはコードを書き換えて食い違っている)と思われます。 イベント関数は、基本的に、コード入力画面上部のコンボボックスを選択して VB に自動で書かせます。 その場合、Private 宣言になると思います。また関数名のデフォルトは 「コントロール名_イベント名」です。 提示のコードは、最初から手書きか、修正されています。 初心者はそんなところでケアレスミスを犯すので、自動で書かせて動く事を 確認してから修正すべきでしょう。

tomu_sanboy
質問者

お礼

自動で書かせることができるんですね。^^; いままで、javaやc言語しか触ったことしかなかったので知りませんでした。 早速試してみたら、ちゃんと動きました。ありがとうございます。 あと、せっかく回答していただいた方に言葉を返すようで申し訳ないのですが >まず、質問の内容とは違いますが、 >提示のコードでは、最後から2行目に > End Sub >が抜けているのでその時点でコンパイルエラーです。 とのことですが、1行目がクラスの開始 2行目がメソッドの開始なので問題ないと思います。

関連するQ&A