- - PR -
ユーザコントロールのタブインデックスについて教えてください
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-25 19:01
始めての投稿ですが、いつも参考にさせていただいております。申し訳ありませんが、ご存知の方がいらっしゃったら教えてください。
【環境】 VisualStudio2003,VB.NET,Windowsアプリケーション 【問題点】 テキストボックスのロストフォーカス時に日付が入力されていない場合はシステム日付をセットするという簡単ななユーザコントロールを作成しました。 通常の場合は、問題ないのですが、シフトタブで移動した場合などのタブインデックスが現在のタブインデックスより小さい場合はシステム日付をセットしたくない(ブランクのまま)のですが、どのような方法で実装すればいいのでしょうか? できればユーザコントロールを利用しているフォーム側ではなく、ユーザコントロール内で解決したいのですが、そのようなことは可能でしょうか? 以上、宜しくお願い致します。 | ||||||||
|
投稿日時: 2006-05-25 19:05
一応可能ですが、ユーザーコントロールの範疇じゃないですよね... 方法としては、Validating イベント移行でシステム日付を設定するように変更し、 Validating イベントで FindForm メソッドから ActiveControl を得て... 後はわかりますよね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2006-05-26 10:32
返信が遅れまして、申し訳ありません。
>>一応可能ですが、ユーザーコントロールの範疇じゃないですよね... 申し訳ありません。初心者なので教えてほしいのですが、範疇ではないのでしょうか? 今回のような場合はユーザコントロール側で処理を追加するのではなく、フォーム側に処理を追加する方が正しいということなのでしょうか?教えていただけたら、今後の参考にすることができるのでお願いいたします。 | ||||||||
|
投稿日時: 2006-05-26 10:36
横から失礼します。 僕なら、フォーム側に処理を追加すると思います。 この仕様でよく使うのであれば、TextBoxから派生させたクラスを作る方が自然かな?、と思います。 | ||||||||
|
投稿日時: 2006-05-26 11:34
はい、外の世界のコントロールの都合には関与しないものです。 コントロール内で解決したいというのはわかります。 普通は、それが王道であるのですが、外の世界に及ぶ場合はこの限りでないのです。
上記理由からそれが望ましいのですが、業務上の都合もあるでしょう。(開発が容易になるなど) UserControl 内で解決したいのであれば、Form の参照から TabIndex の都合を見る方法はどうでしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1