私はToolStrip
複数ToolStripDropDownButton
のsを持っており、それぞれにのセットがありDropDownItems
ます。
ユーザーがDropDownItemをクリックすると、チェックマークが表示されます。
デフォルトでは、複数のアイテムをクリックできるため、複数のチェックマークが表示されます。
私がやろうとしているのは、ユーザーが1つのDropDownItemをクリックしたときに、他のすでにチェックされているアイテムのチェックを外す必要があるということです。つまり、ドロップダウンリストには常に1つのチェック項目のみが存在する必要があります。
しばらく手を出していましたが、他のチェックを外している間、現在チェックしているアイテムをそのままにしておく方法がよくわかりません。
以下は私が今持っているコードです。
private void subietm1ToolStripMenuItem_Click(object sender, EventArgs e)
{
UncheckOtherToolStripMenuItems(sender);
}
public void UncheckOtherToolStripMenuItems(object selectedMenuItem)
{
List<ToolStripDropDownButton> dropdownButtons = new List<ToolStripDropDownButton>();
foreach (ToolStripItem item in toolStrip1.Items)
{
if (item is ToolStripDropDownButton)
{
dropdownButtons.Add((ToolStripDropDownButton)item);
}
}
foreach (ToolStripDropDownButton btn in dropdownButtons)
{
foreach (ToolStripMenuItem d in btn.DropDownItems)
{
if (d.Checked)
d.CheckState = CheckState.Unchecked;
}
}
}
誰かがこれに光を当てたり、簡単な方法を教えてくれたら、ありがたいです。
ありがとうございました。