C# 如何实现VisualStudio样式的添加或删除按钮toolstrip
我想实现VisualStudio风格的添加或删除Ruttons toolstrip,如下所示 在我的winforms应用程序中,如何实现这一点 我没有在这方面尝试过任何东西,因为我不知道如何开始,而且我在winforms方面没有太多的工作经验C# 如何实现VisualStudio样式的添加或删除按钮toolstrip,c#,winforms,toolstrip,C#,Winforms,Toolstrip,我想实现VisualStudio风格的添加或删除Ruttons toolstrip,如下所示 在我的winforms应用程序中,如何实现这一点 我没有在这方面尝试过任何东西,因为我不知道如何开始,而且我在winforms方面没有太多的工作经验 请建议。乍一看,这并不难 只需将ToolStripDropDownButton添加到您的ToolStrip中,无需图像或文本。这将使外观看起来或多或少相似 在此下拉按钮中添加一个带有“添加或删除按钮”标题的ToolStripMenuItem。我们将其称为
请建议。乍一看,这并不难 只需将
ToolStripDropDownButton
添加到您的ToolStrip
中,无需图像或文本。这将使外观看起来或多或少相似
在此下拉按钮中添加一个带有“添加或删除按钮”标题的ToolStripMenuItem
。我们将其称为AddRemoveMenuItem
现在,使用代表所有可配置的ToolStripItem
s的菜单项填充AddRemoveMenuItem
的子菜单项。您可以通过菜单项的标记
属性链接菜单项和可配置的工具条项(您也可以子类化ToolStripMenuItem
添加ToolStripItem LinkedToolStripItem{get;set;}
属性,但我认为这并不值得)
所有这些“链接”菜单项都必须处理其单击事件,在这些事件中,它们将切换链接工具条项的可见属性,并相应地同步其选中状态
我会这样做:
linkedMenuItem.Click += (sender, e) => linkedMenuItem.Checked = !linkedMenuItem.Checked;
linkedMenuItem.CheckedChanged +=
(sender, e) =>
{
var linkedToolStripItem = linkedMenuItem.Tag as ToolStripItem;
if (linkedToolStripItem != null)
{
linkedToolStripItem.Visible = linkedMenuItem.Checked;
}
};
启动应用程序时,根据应用程序的默认设置、用户设置等设置相应的链接菜单项Checked
state,您就完成了。有一些插件,如?它有很多预定义的东西(实际上非常有用):)或@jbutler483这很容易实现,而不需要使用第三方软件。@在这两者之间,我考虑的更多的是样式而不是实现