Как предотвратить программное изменение RadioButton.Checked от удаления управления из TabOrder?C#

Место общения программистов C#
Anonymous
Как предотвратить программное изменение RadioButton.Checked от удаления управления из TabOrder?

Сообщение Anonymous »

У меня есть пара RadioButtons в проекте C# Winforms.
Я хочу предоставить кнопку «чистой формы», которая должна сбрасывать радиокнопки.

В настоящее время я просто установил для RadioButton.Checked значения false, и все в порядке.

Код: Выделить всё

rdbBlockRelease.Checked = false;
rdbRegularRelease.Checked = false;
Проблема заключается в том, что вы начинаете переходить по форме после ее очистки.

Прежде чем переходить по форме, порядок табуляции работает должным образом. Если вы отметите переключатель, а затем очистите форму, радиокнопки будут удалены из табуляции.

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

Если вы отметите переключатель, а затем перейдете к группе, неотмеченные переключатели будут пропущены; фокус переходит на отмеченный переключатель.

Учитывая это, я считаю, что происходит, форма думает, что группа переключателей все еще имеет проверенный переключатель, и изменение значений radiobutton.checked, похоже, не влияет на это. Поэтому, когда пользователь пытается перейти к группе переключателей после очистки формы, форма говорит что-то вроде:

"О, хорошо. Переведите фокус на выбранный переключатель. О, нет выбранного переключателя. Переведите фокус на следующий элемент в порядке табуляции".

Теперь у меня вопрос. Как мне это предотвратить? Как сделать так, чтобы пользователь мог перейти к группе переключателей после очистки формы?

Я использую Visual Studio 2017.

Подробнее здесь: https://stackoverflow.com/questions/475 ... ving-contr

Вернуться в «C#»