今天做了一个菜单栏,实现了一下类似visual studio中那种可以同步下拉菜单选项的splitbutton功能,效果如下:
代码非常简单,几句话就可以实现。
public static class MenuExtend
{
public static void SyncToDeault(this ToolStripSplitButton button)
{
Action<ToolStripSplitButton, ToolStripItem> synchanlder = (splitButton, item) =>
{
splitButton.DefaultItem = item;
splitButton.Text = item.Text;
splitButton.ToolTipText = item.ToolTipText;
splitButton.Image = item.Image;
};
synchanlder(button, button.DropDownItems[0]);
button.DropDownItemClicked += (sender, args) => synchanlder((ToolStripSplitButton)sender, args.ClickedItem);
}
}
public Form1()
{
InitializeComponent();
toolStripSplitButton1.SyncToDeault();
}