У меня есть форма окна с панелью слева, которая состоит исключительно из радиокнопок, и табуляция в середине, с несколькими вкладками внутри. Каждая из этих отдельных вкладок содержит серию представлений в виде сетки данных, которые отображаются и скрываются в зависимости от того, какой переключатель вы выбрали.
Я достигаю этого эффекта, назначая каждому из переключателей слева назначенное событие CheckChanged, которое проходит по всем элементам управления в tabpagecontrol.SelectedTab и вызывает .Show () для соответствующего представления данных и вызывает . Hide () для остальных , так что за один раз видна только одна сетка данных.
Моя проблема возникает, когда я пытаюсь программно проверить одну из этих радиокнопок. Допустим, в методе X я пишу RadioButtonA.checked = true. Это запускает обычную обработку события CheckedChange, которая перебирает все таблицы данных на текущей выбранной вкладке и вызывает .Hide () для всего, кроме одной формы таблицы данных, которую должна вызывать радиопереключатель, и вместо этого вызывает .Show (). Однако при одном из этих вызовов .Hide () в сетке просмотра данных он в конечном итоге вызывает событие RadioButtonA.CheckedChange AGAIN во второй раз. Когда я смотрю на аргумент отправителя, переданный функции, он показывает, что отправителем является RadioButton, на который я только что программно нажал.
Я добавляю эти таблицы данных программно и могу подтвердить, что им не назначены обработчики событий. Может ли кто-нибудь помочь мне определить причину, по которой вызывается это дополнительное событие? Спасибо.