- - PR -
TextBoxのEnterイベントが2回走る
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-07-30 16:42
VB.Net2003で開発を行っています。
あるTextBoxとComboBoxをマウスで触られたら別のTextBoxにフォーカスを移す、 という処理をしたくて、
というようにコードを書いているのですが、なぜかTextBox1をマウスでクリック したときこのイベントに2回飛んできてしまい、困っています。 (実際にはこのSubの中で他の処理もしているので、処理が2回走るのは困るのです) ステップ実行してみると、確かにTextBox2.FocusのところでMe.ActiveContorolが TextBox2に変わるのですが、End Subで抜けた後またすぐにMe.ActiveControl=TextBox1 になってSubに入ってきてしまいます。 Sender=ComboBox1で入ってきたときには1回だけでフォーカスがTextBox2に移って そのまま終わるのですが、何故なのでしょうか? FormかTextBox1のプロパティの問題なのかと思って探してみたのですがそれらしい ものも見つけられず、困っています。 何か見落としていることがあるのでしょうか? ご存知の方、手がかりだけでも結構ですので、教えてください。 [ メッセージ編集済み 編集者: さくら 編集日時 2007-07-30 16:44 ] | ||||||||
|
投稿日時: 2007-07-30 17:11
まず目的とイベントが合致していないように思えます。 Mouse*** のイベントになるのではないでしょうか。 おそらく [Tab] キーによって遷移した場合は今のままで良いでしょうが、マウスとなると話が変わってきます。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-07-31 10:21
言われて気がつきました。確かにそうですね。 元のコードをMouseDownイベントに置き換えたところ、あっさり解決しました。 今回はTabでは飛ばないようにしているので、MouseDownで実装することにしました。 アドバイスありがとうございます。 (でも何故EnterイベントでTextBoxだと2回飛ぶのでしょう?Tabキーで遷移した ときは1回しか飛ばないのに。。。) |
1