none
矢印キーでTabStop=Falseなユーザーコントロールへフォーカスが移る RRS feed

  • 質問

  • #VS2005T/S , WinXPSP2 , Office2003 , IE6

    フォームにラベルのみで構成されたユーザーコントロールとコマンドボタンが複数配置されています。
    ユーザーコントロールはTabStop=Falseにされている状態で次の現象になります。
    ・Tabキーでは正常にコマンドボタン間をフォーカスが移動する。
    ・上下矢印キーではユーザーコントロールを含めてフォーカスが移動する。

    既知の問題でしょうか?

    2006年11月7日 0:37

回答

  •  まどか さんからの引用
    フォームにラベルのみで構成されたユーザーコントロールとコマンドボタンが複数配置されています。
    ユーザーコントロールはTabStop=Falseにされている状態で次の現象になります。
    ・Tabキーでは正常にコマンドボタン間をフォーカスが移動する。
    ・上下矢印キーではユーザーコントロールを含めてフォーカスが移動する。

    既知の問題でしょうか?

    当該バージョンに限らず、昔からの仕様だと思っていましたが...

    2006年11月7日 2:23
  • TabStop はあくまでも Tab キーが押された場合のフォーカスを制御するものだからでしょうね。
    ユーザコントロール内にフォーカスを設定したくないのであれば、

    Me.SetStyle(ControlStyles.Selectable, False)

    をコンストラクタで実行すれば、フォーカスを受け取らなくすることが出来ました。

    2006年11月7日 3:39

すべての返信

  •  まどか さんからの引用
    フォームにラベルのみで構成されたユーザーコントロールとコマンドボタンが複数配置されています。
    ユーザーコントロールはTabStop=Falseにされている状態で次の現象になります。
    ・Tabキーでは正常にコマンドボタン間をフォーカスが移動する。
    ・上下矢印キーではユーザーコントロールを含めてフォーカスが移動する。

    既知の問題でしょうか?

    当該バージョンに限らず、昔からの仕様だと思っていましたが...

    2006年11月7日 2:23
  • TabStop はあくまでも Tab キーが押された場合のフォーカスを制御するものだからでしょうね。
    ユーザコントロール内にフォーカスを設定したくないのであれば、

    Me.SetStyle(ControlStyles.Selectable, False)

    をコンストラクタで実行すれば、フォーカスを受け取らなくすることが出来ました。

    2006年11月7日 3:39
  •  じゃんぬねっと さんからの引用

    当該バージョンに限らず、昔からの仕様だと思っていましたが...

    えぇ!そうなんだ。>って旧VBから?

    ユーザーコントロール自体あまり作ったことが無かったので知りませんでした。
    って、仕様なのか。。。

    2006年11月7日 4:00
  •  ダッチ さんからの引用

    Me.SetStyle(ControlStyles.Selectable, False)
    をコンストラクタで実行すれば、フォーカスを受け取らなくすることが出来ました。

    ありがとうございます。
    参考にさせていただきます。

    2006年11月7日 4:00