|
2013/08/07(Wed) 23:44:46 編集(投稿者)
■No67527 (YM さん) に返信 > Call txt1_TextChanged(Sender , e) > Call txt2_TextChanged(Sender , e) > Call txt2_TextChanged(Sender , e)
txt1, txt2, txt3 ではなく、 txt1, txt2, txt2 なのですか?
> 上記のような処理を これらは本来、TextChanged イベントから呼ばれるために用意されたものですよね。 であれば、それ以外の場所から呼ぶべきではありません。
また、自身で呼びだすにしても、 txt1_TextChanged(txt1, EventArgs.Empty) txt2_TextChanged(txt2, EventArgs.Empty) のように sender 引数にはイベント発生元のオブジェクトが渡されるべきです。
sender 引数が適切に渡されていないと Private Sub txt_TextChanged(…) Handles txt1.TextChanged, txt2.TextChanged のように、複数のイベントを一つにまとめて使うような場合に、 どのコントロールのイベントが発生しているのかを判断できません。
> 上記のような処理をループを使ってスッキリとしたコーディングにしたいのですが可能でしょうか? TextChanged イベントを発生させる、という目的だけなら For Each txt In Me.Controls.OfType(Of TextBox)() txt.AppendText(vbNullChar) Next と書けます。あまり良い手法では無いですが…。
|