Событие нажатия кнопки переключателя Windows Forms запускается при запуске

#c# #.net #windows-forms-designer

#c# #.net #windows-forms-designer

Вопрос:

У меня есть восемь переключателей на пользовательском элементе управления. У каждого из них есть или будет свой собственный обработчик щелчков. У первого есть обработчик щелчка, вызываемый при добавлении пользовательского элемента управления в главное окно. Является ли это нормальным поведением для Windows Forms (я относительно новичок в .NET с Java)

Ответ №1:

Этот эффект, скорее всего, является результатом выбора элемента управления по умолчанию, а не элемента управления, добавляемого в форму. Когда форма завершит загрузку, один из элементов управления в форме станет активным элементом управления / будет иметь фокус. Если этот элемент управления является кнопкой переключения, кнопка становится отмеченной, что приведет к возникновению событий типа Click и CheckChanged (если для свойства кнопки Checked переключения уже не установлено значение true). В зависимости от значения Checked свойства других кнопок, вы также можете увидеть их CheckChanged события.

Чтобы проверить это самостоятельно, измените значение TabIndex свойства в конструкторе так, чтобы какой-либо другой элемент управления в форме имел наименьший индекс. Это позволит сосредоточить внимание этого элемента управления на запуске, а не на переключателях. Когда это происходит, вы не должны видеть Click событие, запускаемое при загрузке формы.

Комментарии:

1. Для записи это поведение также возникает, когда переключатель вложен в пользовательский элемент управления, и этот элемент управления используется по умолчанию в форме.