ユーザーコントロールにてGotFocusを発生させるには?

解決


ATTU  2005-06-14 22:18:19  No: 122634

日付入力用のコントロールを作成しているのですが
ユーザーコントロール自身でのGotFocusイベントを発生させたいのですが

ユーザーコントロール内のTextBoxにGotFocusが発生時では何か処理が
うまくいきませんので コントロール自身で発生させたいのです。

環境 OS:2003 VB:.net2003
よろしくお願いします。


ガ弐号  2005-06-14 23:04:47  No: 122635

VB6ですか?
6しか分からないですけど、多分、

UserControl_GotFocus

で、いけませんか?


ガ弐号  2005-06-14 23:06:24  No: 122636

ごめんなさい、、、
環境かいてありましたね…
.Netは分からないです…
お邪魔しました^^;


じゃんぬねっと  URL  2005-06-14 23:23:18  No: 122637

> ユーザーコントロール内のTextBoxにGotFocusが発生時では何か処理が
うまくいきませんので 

# ずいぶん抽象的な表現ですね。

GotFocus は低水準イベントなので Enter イベントを使うようにしましょう。
LostFocus イベントも同様に Leave イベントが代替になります。


特攻隊長まるるう  2005-06-14 23:31:03  No: 122638

あ。遅かった。…リンクも貼ったからそのまま投稿しちゃえ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 イベントがちゃんと用意されていますので
それを使って下さい。


ATTU  2005-06-15 01:22:25  No: 122639

ガ弐号さん・じゃんぬねっとさん・特攻隊長まるるうさん
ありがとうごぜいます。

>うまくいきませんので
他のコントロールも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
と発生し値の選択(ハイライト?)が出来ない
上記はプログラムで制御できるが

出来ればプログラムでは何もしたくないのです。

別の質問になってしまうかもしれないのですが
ユーザーコントロールで"入力状態になった”を
取得することはできるのですか?


じゃんぬねっと  URL  2005-06-15 01:40:35  No: 122640

コンテナについてもうちょっと勉強してみる必要があるかな。


ATTU  2005-06-15 04:20:03  No: 122641

>コンテナについてもうちょっと勉強してみる必要があるかな
調べてみます。

ユーザーコントロールもGotFocus・LostFocusを使用しないで
作成するようにします。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加