ToolStripButton ="按下"

Vol*_*ort 3 vb.net visual-studio winforms

我有一个工具条按钮,当我点击它时,我想让它保持"按下"或"选中".就像一个开关.当我点击另一个时,再次按下"未按下".有任何想法吗?

Fre*_*örk 6

我想你想要使用这个CheckOnClick属性.将其设置为true,按钮应该按照您的描述运行.要获取(或设置)当前状态,请使用该Checked属性.

这是一个完整的工作样本:

public partial class Form1 : Form
{
    private readonly IEnumerable<ToolStripButton> mutuallyExclusiveButtons;

    public Form1()
    {
        InitializeComponent();
        mutuallyExclusiveButtons = new[] { firstButton, secondButton };
    }

    private void ToolStripButton_Click(object sender, EventArgs e)
    {
        ToolStripButton button = sender as ToolStripButton;
        if (button != null && button.Checked && 
            mutuallyExclusiveButtons.Contains(button))
        {
            foreach (ToolStripButton item in mutuallyExclusiveButtons)
            {
                if (item != button) item.Checked = !button.Checked;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

firstButton并且secondButtonToolStripButtons,两者都已经CheckOnClick设定true,并且他们的Clicked事件联系起来ToolStripButton_Click.如果按钮组中有两个以上的按钮,其中只应检查一个按钮,只需在mutuallyExclusiveButtons序列中添加任何所需的附加按钮,这也可以工作.