- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:イベント時に変数値が更新されない)
イベント時に変数値が更新されない
このQ&Aのポイント
- VB2010にて、keydownイベントを発生させているが、データ番号の更新がされず、Ctrl+→を押すと、毎回同じ数値が表示される。
- 修正方法を教えてください。
- データ番号=データ番号+1の値が更新されるようにするにはどうすればいいですか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
このソースだけだと、「データ番号」は+1されていますね。 他の部分で操作していませんか? また、変数はどのように切られていますか? MainPage_Loadメソッド内にDimで切ってたりすると保持されませんので、 メソッド外にPrivate等で切る必要があります。 ----------------------------------------------------------------------- Private dataNumber = 0 '/ プライベートで切った場合 Private Sub MainPage_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles Me.KeyDown Dim num = 0 '/ ローカルで切った場合 dataNumber += 1 num += 1 MsgBox(dataNumber) '/ 毎回+1されていく MsgBox(num) '/ 何度やっても1が表示される End Sub
お礼
データ番号の変数はモジュールでpublic宣言しています。 今、メッセージボックスの表示をなしにしてみたら、正常に変数の更新がされました。 メッセージボックスを再び表示させてみたら、変数の更新がされずに、同じ値ばかり表示されます。 メッセージボックスがじゃまをしているようです。。。
補足
回答ありがとうございます。 メッセージボックスをシングルクォーテーションで非表示にすると、 Ctrl+→を押すたびにデータ番号がプラス1され、 テキストボックスにX,Y座標が更新表示されます。 メッセージボックスを表示させると、 何度Ctrl+→を押しても、同じデータ番号が表示され、 変数の更新がされません。 よくわからない現象です。