vb.net - 工具条按钮 = "Pressed"

标签 vb.net winforms visual-studio

我有一个工具条按钮,当我单击它时,我想让它保持“按下”或“选中”状态。就像一个开关。当我单击另一个时,再次使按下的“未按下”。有什么想法吗?

最佳答案

我想你想使用 CheckOnClick属性(property)。将其设置为 true,按钮的行为应与您描述的一样。为了获取(或设置)当前状态,使用 Checked属性(property)。

这是一个完整的工作示例:

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;
            }
        }
    }
}

firstButtonsecondButtonToolStripButton,它们都将 CheckOnClick 设置为 true,并且它们的 Clicked 事件连接到 ToolStripButton_Click。如果按钮组中有两个以上的按钮且只应检查一个按钮,这也适用,只需将任何需要的额外按钮添加到 mutuallyExclusiveButtons 序列。

关于vb.net - 工具条按钮 = "Pressed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5573581/

相关文章:

visual-studio - 将某些包的 nuget 包更新限制为当前版本

vb.net - VB.Net 中类成员的这两种初始化方法有什么区别?

asp.net - 需要谷歌类型布局 css

c# - 如何使用图标呈现数据绑定(bind)的 WinForms DataGridView 列?

C# Tabcontrol 捕获 mousedown 事件

winforms - 为单个实例安装摆脱 "The publisher could not be verified"- 可能吗?

wpf - TemplatePart发现

C# 静态类与 VB.NET 模块使用

asp.net - 在 vb.net 中创建进度条

c# - 数据源配置向导 : Could not retrieve schema information for table or view