Я знаю, что это почти древний пост, но я подумал, что стоит упомянуть, что, хотя встроенная поддержка RadioButton MenueItem отсутствует, достаточно легко заставить их флажки вести себя таким образом. Начните с установки свойства CheckOnClick
каждого элемента MenueItem равным FALSE
. Затем примените один и тот же обработчик событий MouseDown
к каждому элементу:
private void ToolStripMenueItem_MouseDown(object sender, MouseEventArgs e)
{
var thisTsmi = (ToolStripMenuItem)sender;
foreach (ToolStripMenuItem tsmi in thisTsmi.GetCurrentParent().Items)
{
tsmi.Checked = thisTsmi == tsmi;
}
}
Вместо этого вы можете использовать событие Click
, но я предпочитаю MouseDown
, потому что он предоставляет пользователю некоторую визуализацию того, что проверенный элемент изменился, оставляя открытым событие Click
для кодирования отдельных элементов при необходимости.