SplitContainerのFormLoad時のFocusについて

解決


まっは  2007-06-16 03:08:46  No: 143669

はじめまして、まっはといいます。
SplitContainerにコントロールを貼り付けて使用しているのですが、
FormLoad時に貼り付けてあるコントロールにFocusをセットしたいのですが、
Select、Focusを使用しても、セットできません。
FocusがSplitContainerのSplitterにしかセットされないです。
どうしたらFormLoad時にSplitContainerのコントロールに
Focusをセットできるのでしょうか。ご教授お願いいたします。


魔界の仮面弁士  2007-06-16 05:07:41  No: 143670

> Splitterにしかセットされないです。
splitContainer.Panel1 のコントロールが、
フォーカスを受け取れない状態になっているとか、かな…。

> Focusをセットできるのでしょうか。
Load 中だと、まだフォームが表示されていない可能性が高いので、
  textBox1.Focus()
は失敗する(戻り値 False になる)気がします。この場合は、
  ActiveControl = textBox1
にしてみましょう。


まっは  2007-06-18 22:28:25  No: 143671

お世話になっております。まっはです。
お返事ありがとうございます。
ご指摘のとおり、FormLoad時に
Me.ActiveControl = でコントロールを指定したのですが、
結果は同じでした。ウォッチでMe.ActiveContorolの中を
見たのですが、{System.Windows.Forms.SplitContainer}になっています。
FormLoad以外のイベントでFocusを実行しても内容は
SplitContainerなのですが、フォーカスはコントロールにセットされます。
フォーカスがセットされないのはFormLoad時の場合の不具合のようです。


あ。  2007-06-19 01:58:36  No: 143672

話の内容とは、かすかに違うかもだけど、
Form.ShownイベントでFocusを移動したりしてみてもダメ?


まっは  2007-06-19 03:18:04  No: 143673

お世話になります。
ご指摘通り、ShownイベントにFocusを記述したところ、
なんとうまくいきました!!
ありがとうございます。Loadイベントにばかり目が行って
ほかのイベントを調べていませんでした。
何故Loadイベントでは出来ないのか疑問は残りますが、
Focusがセットできれば文句ありません!!
ありがとうございました。


まっは  2007-06-19 03:29:16  No: 143674

すいません。
解決済みのチェック忘れてました。
これで解決です。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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