8

Windowsフォームアプリケーションがあります。フォームには 3 つのグループボックスがあります。各グループボックスにはいくつかのコントロールが含まれています。画像をご覧ください。 形

いくつかのチェックボックスを含むグループボックスの「フラグ」があります。「フラグ」は「groupbox1」の中にあります。Tab キーを使用して各コントロールを移動しましたが、「フラグ」のチェックボックスでは機能しません。各コントロールに適切なタブインデックスを設定しました。

テキストボックスとボタンでは機能しますが、チェックボックスでは機能します。

なんで?手伝ってくれてありがとう。

編集

 // groupBox2
        // 
        this.groupBox2.Controls.Add(this.pictureBox10);
        this.groupBox2.Controls.Add(this.pictureBox9);
        this.groupBox2.Controls.Add(this.pictureBox8);
        this.groupBox2.Controls.Add(this.pictureBox7);
        this.groupBox2.Controls.Add(this.chkStoplight);
        this.groupBox2.Controls.Add(this.lblStoplight);
        this.groupBox2.Controls.Add(this.chkIsCount);
        this.groupBox2.Controls.Add(this.chkExceptionFlag);
        this.groupBox2.Controls.Add(this.chkIsActive);
        this.groupBox2.Controls.Add(this.lblIsActive);
        this.groupBox2.Controls.Add(this.lblExceptionFlag);
        this.groupBox3.Controls.Add(this.lblIsCount);
        this.groupBox2.Location = new System.Drawing.Point(16, 201);
        this.groupBox2.Name = "groupBox2";
        this.groupBox2.Size = new System.Drawing.Size(321, 70);
        this.groupBox2.TabIndex = 10;
        this.groupBox2.TabStop = true;
        this.groupBox2.Text = "Flags";

        // 
        // chkStoplight
        // 
        this.chkStoplight.AutoSize = true;
        this.chkStoplight.Location = new System.Drawing.Point(44, 25);
        this.chkStoplight.Name = "chkStoplight";
        this.chkStoplight.Size = new System.Drawing.Size(15, 14);
        this.chkStoplight.TabIndex = 0;
        this.chkStoplight.UseVisualStyleBackColor = true;

        In the property, I found TabStop is true for chkStoplight.
4

2 に答える 2

13

System.Windows.Forms.GroupBoxの場合:

flagGroupBoxに適切な TabIndex セットがあることを確認する必要があります。

MSDNから- 方法: Windows フォームでタブ オーダーを設定する:

さらに、既定では、GroupBox コントロールには独自の TabIndex 値 (整数) があります。GroupBox コントロール自体は、実行時にフォーカスを持つことはできません。したがって、GroupBox 内の各コントロールには、.0 で始まる独自の 10 進数の TabIndex 値があります。当然のことながら、GroupBox コントロールの TabIndex がインクリメントされると、それに応じてコントロール内のコントロールもインクリメントされます。TabIndex 値を 5 から 6 に変更すると、そのグループ内の最初のコントロールの TabIndex 値は自動的に 6.0 に変更されます。

また、GroupBoxのTabStopflagプロパティがfalse に設定されていないことを確認してください。false がデフォルトだと思います。

System.Windows.Controls GroupBoxの場合:

GroupBox.IsTabStopプロパティが設定されていることを確認してください。これもデフォルトで false です。

更新:すべてのコントロールが に追加されているようgroupBox3です。それらのそれぞれが、それを含むグループボックスにのみ追加されていることを確認する必要があります。たとえば、checkBox1checkBox2、およびcheckBox3をすべて に追加しflag、それ自体を に追加する必要がありますgroupBox1groupBox3Back、Next、Finish、および Cancel のみを含める必要があります。

于 2012-06-15T14:17:08.053 に答える
2

WinForms グループ ボックスでタブ オーダーを取得する唯一の方法は、生成された InitializeControl メソッドでコントロールがグループ ボックスに追加される順序を変更することであることがわかりました。

複数のグループ ボックスがある場合は、グループ ボックスがコンテナーに追加される順序を確認し、場合によっては変更する必要があります。

生成されたコードを編集するのは本当に嫌いですが、私が見る限り、これを修正する唯一の方法です。

グループ ボックスの TabStop プロパティを設定しても、まったく役に立ちませんでした。

于 2014-06-15T08:18:38.623 に答える