- PR -

何度もイベントが発生するのは・・

投稿者投稿内容
りんご
ベテラン
会議室デビュー日: 2006/12/21
投稿数: 51
投稿日時: 2006-12-28 17:21
じゃんぬねっとさん、msoさん、ご返答ありがとうございます。

デバッグしたのですが、SearchEndは
1回のみです。
SearchEndのEnd Subのあとに
Search_Leaveが何度もおきる状態です。

・・・・ESCキーだと起こらないって一体なんでしょうね・・・
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-28 18:08
引用:

りんごさんの書き込み (2006-12-28 17:21) より:

・・・・ESCキーだと起こらないって一体なんでしょうね・・・


Button へのクリックだと、フォーカスが移動するからでしょう。

一旦、その Button へ [Tab] キーなどでフォーカスを移動させた後に、
[Space] キーを押下して Click イベントが発生した場合は、うまくいくでしょうか?

# ところで、ミニマム コードはまだなのでしょうか。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2006-12-28 23:49
msoです。

よくわからないのですが、どのようなデバッグをされたのでしょうか?
時間もないし、現象がよくわからないと言うのであれば、
Debug.Printをあっちこっちに入れて分析するしかないのでは?

あと、じゃんぬねっとさんから指摘されているミニマムコードは?
りんご
ベテラン
会議室デビュー日: 2006/12/21
投稿数: 51
投稿日時: 2006-12-29 09:03
すみません。
返信が遅れました。

じゃんぬねっと様のご指示どおりやってみます。
りんご
ベテラン
会議室デビュー日: 2006/12/21
投稿数: 51
投稿日時: 2006-12-29 10:11
おはようございます。
フォーム側の仕様変更が多々ありまして、
返信が遅れたことをお詫びします。

じゃんぬねっと様のご指摘どおり
引用:
Button へ [Tab] キーなどでフォーカスを移動させた後に、
[Space] キーを押下して Click イベントが発生した場合は、うまくいくでしょうか?



行ってみるとうまくいきLeaveイベントは発生しませんでした。

また、フォーム側でいらないテキストを一つ作成して
「閉じる」処理の時に一旦フォーカスを退避して戻す方法で
成功しました。
コード:
'閉じるボタンを押されたとき
            Case "NO"
                If TypeName(CC) = "TextBox" Then
                    If Me.SearchBox2.wCODE2 = "" Then
                        CC.Text = ""
                        Me.SelectNextControl(CC, False, True, True, True)
                        Me.SelectNextControl(Me.ActiveControl, True, True, True, False)


まず一つフォームに実装してみようということで
フォーカス移動に悪戦苦闘していました。

また、デバッグは怪しい部分をコメントアウトして、各所でブレークポイントを
おき、ステップ実行で、ウォッチしながら行っておりました。
最終は別にボタンを作成して、新たにコードを組みなおしました。

いろいろと不備があり、ご迷惑をおかけいたしました。

ありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-12-29 11:37
引用:

りんごさんの書き込み (2006-12-29 10:11) より:

じゃんぬねっと様のご指摘どおり
行ってみるとうまくいきLeaveイベントは発生しませんでした。


であれば、原因の察しはつかないでしょうか?
(結局、[Esc] キーどうこうは、原因とは直接関係ないことが明らかになったわけです)

引用:

また、フォーム側でいらないテキストを一つ作成して「閉じる」処理の時に一旦フォーカスを退避して戻す方法で成功しました。


個人的には、良い解決方法 (回避策) だとは思いません。
というより、原因もわからないまま修正を施すのって怖いことだと思いませんか?

とはいえ、どうするかは、りんごさんにお任せします。

引用:

いろいろと不備があり、ご迷惑をおかけいたしました。


"不備" というよりは、'ミニマム コードの提示がなかった' だけではないでしょうか?
もちろん要求に答える義務はないのですが、本当に問題解決をしたいのであれば、
努力や手間は惜しまない方が、結果的に解決が早まることが多いです。

ひとつ言っておきたいのですが、貴方のとなりで見ているわけではない私たちが、
貴方の代わりに問題解決をするには、かなりの '想像力' が必要になってきます。

回答者は、掲示板の向こうで '貴方が書いた情報' と '経験による推測' のみで問題解決しようとしています。
問題解決の鍵に 1 番近いのは、その問題に直面している貴方自身であることをご理解ください。
(情報を引き出せるのは貴方だけなのに、それを惜しんでいたら損をしますという意味です)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)