日付入力用のコントロールを作成しているのですが
ユーザーコントロール自身でのGotFocusイベントを発生させたいのですが
ユーザーコントロール内のTextBoxにGotFocusが発生時では何か処理が
うまくいきませんので コントロール自身で発生させたいのです。
環境 OS:2003 VB:.net2003
よろしくお願いします。
VB6ですか?
6しか分からないですけど、多分、
UserControl_GotFocus
で、いけませんか?
ごめんなさい、、、
環境かいてありましたね…
.Netは分からないです…
お邪魔しました^^;
> ユーザーコントロール内のTextBoxにGotFocusが発生時では何か処理が
うまくいきませんので
# ずいぶん抽象的な表現ですね。
GotFocus は低水準イベントなので Enter イベントを使うようにしましょう。
LostFocus イベントも同様に Leave イベントが代替になります。
あ。遅かった。…リンクも貼ったからそのまま投稿しちゃえw
[Control.GotFocus イベント]ヘルプより抜粋
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformscontrolclassgotfocustopic.asp
>メモ GotFocus イベントおよび LostFocus イベントは、〜
>低水準のフォーカス イベントです。〜
>Enter イベントおよび Leave イベントを使用する必要があります。
System.Windows.Forms.UserControl を継承してるなら
Control.Enter イベントがちゃんと用意されていますので
それを使って下さい。
ガ弐号さん・じゃんぬねっとさん・特攻隊長まるるうさん
ありがとうごぜいます。
>うまくいきませんので
他のコントロールもUserControlで入力時
BackColorを変えたりしているで
TextBox1からTextBox2(TextBox1にもどす)を
"Enter"で処理(マスタチェックなど)すると
TextBox1 Enter
TextBox1 GotFocus
TextBox1 Leave
TextBox2 Enter
TextBox1 Enter
TextBox1 Leave
TextBox1 Enter
と発生してしまい色がBackColorがのこってしまう現象がでてしまい
また"Leave"で処理すると
TextBox1 LostFocus
TextBox1 Leave
ここでTextBox1.Focus
TextBox1 Enter
TextBox1 GotFocus
TextBox1 LostFocus
TextBox1 Leave
TextBox1 Enter
TextBox1 GotFocus
と発生し値の選択(ハイライト?)が出来ない
上記はプログラムで制御できるが
出来ればプログラムでは何もしたくないのです。
別の質問になってしまうかもしれないのですが
ユーザーコントロールで"入力状態になった”を
取得することはできるのですか?
コンテナについてもうちょっと勉強してみる必要があるかな。
>コンテナについてもうちょっと勉強してみる必要があるかな
調べてみます。
ユーザーコントロールもGotFocus・LostFocusを使用しないで
作成するようにします。
ツイート | ![]() |