タイトル | : Re: 検索画面が正常に表示されない |
記事No | : 769 |
投稿日 | : 2004/03/01(Mon) 22:37 |
投稿者 | : たくボン |
共通Dll.clsMainやClass3の中身がないのでなんとも言えないのですが、GetFocusを使用されているから です。検索ダイアログが表示されたときにTextBox1からFocusが移動、ダイアログにFocusが移動。最後 の > TextBox1.Text = strRet1 この部分で再度GetFocusが発生ですね。下のようなサンプルでも同様の現象は発生します(点滅すると いうことは、共通Dllの中でスレッド処理してるような感じがするんですが・・・)
Private Sub TextBox1_GotFocus( _ ByVal sender As Object, ByVal e As System.EventArgs _ ) Handles TextBox1.GotFocus Dim f6 As New Form2 Console.WriteLine("TextBox1_GotFocus") Console.WriteLine("Show Form") f6.Show() TextBox1.Text = f6.Text End Sub
Private Sub TextBox1_LostFocus( _ ByVal sender As Object, ByVal e As System.EventArgs _ ) Handles TextBox1.LostFocus Console.WriteLine("TextBox1_GotFocus") End Sub
回避方法としては、 1.GotFocusで処理しない。 2.フラグ変数で、ダイアログを一度表示したら2度目のGetFocusを処理しない。 なんかがありますね。 個人的には、このようなコードは嫌いなので極力さけますが・・・。
|