Я реализую один обработчик событий для обработки события CheckedChanged для всех радиокнопок на панели. ( Обработчик событий для groupBox с radioButtons в C#, Какая радио-кнопка в группе отмечена? )
Я ждал, что когда я переключу радио-кнопку там Это два события: одно вызывается из неконтролируемого radioButton, а другое - из проверенного.
public Form1()
{
Panel createToolPanel()
{
radioButton1.CheckedChanged += toolPanel_CheckedChanged;
radioButton2.CheckedChanged += toolPanel_CheckedChanged;
radioButton3.CheckedChanged += toolPanel_CheckedChanged;
// ...
}
void toolPanel_CheckedChanged (object sender, EventArgs e)
{
var rb = (RadioButton)sender;
if (rb.Checked == false)
return;
switch(rb.Name)
{
// Do stuff
}
}
Но вместо этого каждый раз, когда я переключаю любую из radioButton, отправитель всегда является первым radioButton.
sender: radioButton1
sender: radioButton1
Что более важно, когда я переключаюсь со 2-го на 3-й переключатель RadioButton (или с 3-го на 2-й), событие вообще не происходит . Я не понимаю, почему это происходит ..
Я также пытался изменить добавление кода обработчика событий следующим образом:
radioButton1.CheckedChanged += new EventHandler(toolPanel_CheckedChanged);
radioButton2.CheckedChanged += new EventHandler(toolPanel_CheckedChanged);
radioButton3.CheckedChanged += new EventHandler(toolPanel_CheckedChanged);
Но это не помогло.