- - PR -
CanFocus=Trueだが、FocusするとFalseが返ってくる
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-10-19 17:09
こんにちは。KOKOと申します。
現在、VB.net2003 + SQLServer2000にて、Windowsアプリを開発しております。 いくつか独自に作成したユーザーコントロールを使用しているのですが、 CanFocusプロパティはTrueにもかかわらず、 それらに.Focus すると、戻り値にFalseが返ってきます。 これは.netのバグなんでしょうか?それとも仕様? (もしくは仕様という名のバグ?w) とりあえずは、.Focusした後に、.ContainsFocusプロパティで、 フォーカスが受け取られているかをチェックしていますが、 ちょっと気持ち悪いので、この現象についてもしご存知の方がいらっしゃれば、 ご教授いただければ幸いです。 よろしくお願いいたします。 | ||||||||
|
投稿日時: 2004-10-19 19:26
フレームワークのバグを疑う前に、自分のコードや理解のバグを疑うべき、だと思います。で、MSの技術情報を、「KBBUG」をキーにして検索するとバグ情報が、「KBFIX」をキーにして検索すると修正済みのバグ情報が出てくるのですが(その他は、私のウェブページからリンクしているページを参照)、探してみました?
で、とりあえず。。。
この辺の条件は、クリアしていますか? _________________ | ||||||||
|
投稿日時: 2004-10-19 22:08
南部です。
バグかどうか疑うまでもなく、 ドキュメントに説明されているとおりの動きだと思いますが。 UserControlはContainerControlのサブクラスなので、 フォーカスを受け取ると、コンテナ内のコントロールの コレクション内にある最初の子コントロールに設定されます。 なので、UserControlのFocus()メソッドの戻り値はfalseです。 ちなみにUserControlに子コントロールがない場合、 UserControlのFocus()メソッドの戻り値はtrueです。 つまり、UserControl自身がフォーカスを受け取っています。 #当然UserControlのGotFocusイベントも発生します。 以上。 | ||||||||
|
投稿日時: 2004-10-20 10:13
kokoです。
南部様、Jitta様: 早速のレスありがとうございます。 > UserControlはContainerControlのサブクラスなので、 うっ、おっしゃるとおりですね。 MSDNヘルプやバグレポートは一通り見ていたつもりだったのですが、 そもそもどこかで勝手にSystem.Windows.Forms.Controlだと勘違いしていました。。。 申し訳ありません。m(__)m (恥ずかし〜) そもそも根本的に間違ったところで探していたため、しょーもないところではまってしまいました。 ご指導ありがとうございました。 |
1