2012-06-15 11 views
7

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

いくつかのチェックボックスを含むグループボックス "フラグ"があります。 "flagbox"は "groupbox1"内にあります。 Tabキーを使用して各コントロールを操作しましたが、「フラグ」のチェックボックスでは機能しません。私は各コントロールに適切なtabindexを設定しました。

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

なぜですか?手伝ってくれてありがとう。 System.Windows.Forms.GroupBoxについては

EDIT

// 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. 
+0

タブを押し続けた後にどのコントロールがアクティブになるか教えてください –

+0

コードを投稿できますか? – Dante

+0

コードはtabindexの単なる数字です。チェックボックスを除くすべてのコントロールが有効です。 –

答えて

9

あなたのGroupBox flagが適切なのTabIndexが設定されていることを確認する必要があります。

MSDN - How to: Set the Tab Order on Windows Formsから:

また、デフォルトでは、グループボックスコントロールは全体の数である、独自のTabIndex 値を持ちます。 GroupBoxコントロール自体は、実行時に フォーカスを持つことはできません。したがって、GroupBox内の各コントロールには0から始まる小数点以下のTabIndex値 があります。もちろん、GroupBoxコントロールのTabIndex がインクリメントされると、コントロール内のコントロールはそれに応じて になります。あなたは、そのグループの最初のコントロールの のTabIndex値に自動的 変化に6.0など。また

上の6に5からのTabIndex値を変更した場合、flagではない、あなたのGroupBoxの確認TabStop財産を作りますfalseに設定します。私はfalseがデフォルトであると信じています。 System.Windows.ControlsのGroupBoxについては

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

更新:あなたのすべてのコントロールが groupBox3に追加されていることが表示されます。それぞれのグループが含まれているグループボックスにのみ追加されていることを確認する必要があります。例えば、 checkBox1, checkBox2および checkBox3はすべて flagに追加する必要があります。それ自体は groupBox1に追加する必要があります。 groupBox3には、[戻る]、[次へ]、[終了]、および[キャンセル]のみを含める必要があります。

+0

GroupBoxのTabStopプロパティはありません。 –

+0

リンクを確認してください。具体的には、GroupBox.TabStopプロパティのMSDNアーティフィシャルに移動します。また、新しいGroupBoxの作成をテストし、a)プロパティが存在し、b)デフォルトがfalseであることを確認しました。 –

+0

たぶん、チェックボックスはキーストロークではなくマウスのためのものでしょうか? –

1

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

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

私は実際には生成されたコードの編集を嫌っていますが、これを修正する唯一の方法はわかります。

グループボックスのTabStopプロパティを設定しても何の助けにもなりませんでした。

関連する問題