ощущению немного Hacky, но вы можете создать Dictionary<RadioButton, Action>
, содержащий отображение между RadioButton
управлением и соответствующими методами (которые являются void
методами без параметров, соответствие Action
делегата подписи):
Dictionary<RadioButton, Action> _rbMethods = new Dictionary<RadioButton, Action>();
При загрузке форма, добавить кнопки и соответствующие методы на карту:
_rbMethods.Add(rbFrenchImp, FrenchImpAction);
_rbMethods.Add(rbFrenchMet, FrenchMetAction);
_rbMethods.Add(rbEnglishImp, EnglishImpAction);
Затем, вы можете довольно легко вызвать соответствующие методы для кнопки проверяемого радио (или кнопки, в случае, если они находятся в разных группах):
foreach (RadioButton key in _rbMethods.Keys.Where(rb => rb.Checked))
{
_rbMethods[key]();
}
Это WinForms, WPF или WebForms? – 2010-12-16 13:32:49
Вы используете webforms? если да, почему бы не использовать «RadioButtonList»? – 2010-12-16 13:33:08
@Mr. TA: Это имеет значение? Это не вопрос о переключателях, это о `switch` с несколькими булевыми операторами. – Bobby 2010-12-16 13:34:05