(入力番号用の)テキストボックスが1つしかないusercontrolで奇妙な状況が発生しました。
たとえば、「編集状態」では、テキストはフォーマットされておらず、左揃えになっていますが、コントロールを離れた後、同じテキストをフォーマットして右揃えにします。そのために、テキストボックスの「leave」イベントハンドラーの下にあるコードを使用します。
Private Sub numText_Leave(ByVal sender As Object, ByVal e As System.EventArgs) Handles numText.Leave
Debug.Print("numText_Leave")
numText.TextAlign = def_Alignment ' right
RefreshText() ' sub for formatting
End Sub
そして、何が起こりますか?
プログラムが_Leaveにステップインし、新しい配置を設定すると、numTextが再び入り、usercontrolは終了したくありません。これらのコードにコメントを付けると、usercontrolは正常に終了しますが、目的のテキストを表示(フォーマット済み)できません。
_Leaveハンドラーの代わりにnumText_LostFocusを使用した場合も同じです。
ここで何をすべきかについて何か考えはありますか?
編集:
結局のところ、私は解決策を見つけました。
トリックは、入力にtextbox_Enterを使用し、終了にtextbox_LostFocusを使用することです。
このようなイベントのペアは、終了時にテキストボックスの配置を設定するときにtextbox_Enterを発生させません。