Ответ, основанный на этой статье , написанной Родом Стивенсом
Если вы не планируете добавлять больше БД в свое меню, проблем с этим не возникает.
Если вы планируете добавить X BD в свое меню, вы можете хранить все элементы меню в List<ToolStripMenuItem>
и использовать этот список для динамической проверки / снятия отметки с элементов.
Например, я разработал эту превосходную форму:
![enter image description here](https://i.stack.imgur.com/phAgN.jpg)
I не установил с помощью конструктора никаких событий для этих элементов (правильно названных: test1ToolStripMenuItem
в test4ToolStripMenuItem
)
В классе формы я сохранил список элементов меню в списке с именем DBs
и добавил в событие click тот же метод:
private List<ToolStripMenuItem> DBs;
private void Form1_Load(object sender, EventArgs e)
{
DBs = new List<ToolStripMenuItem>
{
test1ToolStripMenuItem,
test2ToolStripMenuItem,
test3ToolStripMenuItem,
test4ToolStripMenuItem
};
foreach (var DB in DBs)
{
DB.Click += FakeRadioBehaviour;
}
}
МетодFakeRadioBehaviour
будет перебирать список MenuItem, проверять object sender
, которые соответствуют определенному элементу списка, и снимать флажки с других:
private void FakeRadioBehaviour(object sender, EventArgs e)
{
foreach (var DB in DBs)
{
//Checks the sender, unchecks all others ones.
DB.Checked = ((sender as ToolStripMenuItem) == DB);
}
}