TabIndex не работает правильно

У меня есть приложение Windows Form. На форме есть три группы. Каждый групповой ящик содержит несколько элементов управления. Пожалуйста, смотрите изображение. form

Существует групповой блок "флаг" который содержит несколько флажков. & Quot; флаг & Quot; находится внутри "groupbox1". Я использовал клавишу Tab для прохождения каждого элемента управления, но он не работает для флажков в поле «flag». Я установил правильный tabindex для каждого элемента управления.

Это работает для текстовых полей и кнопок, но флажки.

Зачем? Спасибо за помощь.

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.
 Ozgur Dogus15 июн. 2012 г., 16:10
пожалуйста, сообщите нам, какой элемент управления активируется после постоянного нажатия клавиши Tab
 Jon Senchyna15 июн. 2012 г., 16:38
Ты используешьSystem.Windows.Controls.GroupBox или жеSystem.Windows.Forms.GroupBox?
 user110894815 июн. 2012 г., 16:39
this.groupBox1 = new System.Windows.Forms.GroupBox ();
 user110894815 июн. 2012 г., 16:34
Код это просто цифры для tabindex. Все элементы управления активны, кроме флажков.
 Dante15 июн. 2012 г., 16:12
Не могли бы вы опубликовать свой код?

Ответы на вопрос(2)

Решение Вопроса

ЗаSystem.Windows.Forms.GroupBox:

Вы должны убедиться, что ваш GroupBoxflag имеет соответствующий набор TabIndex.

ОтMSDN - Как: установить порядок вкладок в Windows Forms:

Additionally, by default, a GroupBox control has its own TabIndex value, which is a whole number. A GroupBox control itself cannot have focus at run time. Thus, each control within a GroupBox has its own decimal TabIndex value, beginning with .0. Naturally, as the TabIndex of a GroupBox control is incremented, the controls within it will be incremented accordingly. If you changed a TabIndex value from 5 to 6, the TabIndex value of the first control in its group automatically changes to 6.0, and so on

Кроме того, убедитесь, чтоTabStop собственность вашего GroupBoxflag не установлен в ложь. Я считаю, что по умолчанию используется значение false.

ЗаSystem.Windows.Controls GroupBox:

Убедитесь, чтоGroupBox.IsTabStop свойство установлено. Это также по умолчанию ложно.

Update: It appears that all of your controls are being added to groupBox3. You should make sure that each of them is being added only to its containing groupbox. For example, checkBox1, checkBox2, and checkBox3 should all be added to flag, which itself should be added to groupBox1. groupBox3 should only contain Back, Next, Finish, and Cancel.

 15 июн. 2012 г., 16:40
Ваши флажки должны иметьTabStop (или жеIsTabStop) по умолчанию верно. Я все еще думаю, что проблема в вашемflag GroupBox не имеет своегоTabStop свойство правильно установлено.
 15 июн. 2012 г., 16:25
Для GroupBox нет свойства TabStop.
 15 июн. 2012 г., 16:26
Проверьте ссылку. В частности, это относится к статье MSDN для свойства GroupBox.TabStop. Кроме того, я протестировал создание нового GroupBox и убедился, что а) свойство существует и б) оно по умолчанию имеет значение false.
 15 июн. 2012 г., 16:37
Хорошо. Может быть, флажок только для мыши, а не нажатия клавиш?
 15 июн. 2012 г., 16:39
Я обновил свой ответ, чтобы включить свойства для обоихSystem.Windows.Controls.GroupBox а такжеSystem.Windows.Forms.GroupBox, Мой первоначальный ответ был основан на предположении, что вы используете Forms GroupBox, что может объяснить, почему я обнаружил свойство TabStop, а вы - нет.

Я обнаружил, что единственный способ получить порядок вкладок в групповых полях WinForms - это изменить порядок, в котором элементы управления добавляются в групповые блоки в сгенерированном методе InitializeControl.

Если у вас есть несколько групповых блоков, вам нужно будет проверить порядок добавления групповых блоков в их контейнер и, возможно, изменить его.

Мне действительно не нравится редактировать сгенерированный код, но, насколько я понимаю, это единственный способ исправить это.

Установка свойства TabStop группового окна не помогла вообще.

Ваш ответ на вопрос