DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ユーザーコントロール上のLeaveイベントについて

分類:[.NET]

いつも、質問ばかりで、恐縮なのですが、
変な現象?がおきてしまって困っています。
どなたか、同じような問題で悩んだことはありませんでしょうか?

ucA (ユーザーコントロール)---------------------------------
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Friend WithEvents Label1 As System.Windows.Forms.Label

'MyBase.Leaveイベントを追加
Public Sub ucA_Leave(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles MyBase.Leave
If TextBox1.Text <> "" Then
MessageBox.Show(Label1.Text & "Leave")
End If
End Sub

ucB (ユーザーコントロール)---------------------------------
Friend WithEvents UcA1 As UC.ucA
Friend WithEvents UcA2 As UC.ucA
Friend WithEvents UcA3 As UC.ucA

なるユーザーコントロールを作成し、
Form1 Friend WithEvents UcB1 As UC.ucB
Friend WithEvents UcA1 As UC.ucA
に貼り付けてフォームを作成したのですが

Tabキーで移動すると
ucB.UcA1〜ucB.UcA3において
Leaveイベントが2回起きてしまいます。
(MessageBoxが2回表示される。)

ちなみにさせたい処理は
TextBox1の入力を判定し、
何らかの画面へ遷移、文字の補完など、
をさせたいのですが、ココでは現象を確認するため
MessageBox.Show(Label1.Text & "Leave")
にしています。

環境は
OS   :WindowsXP(SP1)
開発環境:VS.NET2002(.NET Framework 1.0)
使用言語:VB.NET
です。

何かわかる方がいらっしゃいましたら、
よろしくお願いします。
こんばんは、tinaさん。ピラルクです。

当方で試したみたところ同様の症状が確認できました。
(環境の差は、OSがw2k(SP4)という点だけが違う)
[X]で終了する時に至っては3回来るいう奇妙な動作。

.NET のBugのようですね。

(参)
http://www.dotnet247.com/247reference/msgs/25/129337.aspx
ピラルクさん
レスをいただきありがとうございます。
何らかの対応策を考えます。
いい方法が見つかれば
また、ご報告させていただきます。

DOBON.NET | プログラミング道 | プログラミング掲示板