统一ToolstripButtons和ToolstripMenuItems

时间:2010-04-15 07:36:11

标签: c# winforms toolstrip menustrip

几乎在所有情况下,ToolStripItems都会执行等效的MenuStripItem。在这些情况下,这两个命令的ToolTipicontext是相同的。那么,有没有办法(最好是.NET本地方式)来同步和统一这两个项目?这可能是一种在其他地方定义命令的方法,只需将它们放入各种条带中即可。

1 个答案:

答案 0 :(得分:2)

您应该查看command pattern,这样您就可以封装要从ToolStripButtonMenuStripItem调用的逻辑。

This Stackoverflow文章提供了在.net和this中实现命令模式的一些示例。我提供的答案显示了如何提供将命令绑定到按钮的通用方法(这可以非常容易地适应使用其他控件,例如ToolStripItem)。

有一个ICommand接口可用于WPF,但没有理由不能在Windows窗体应用程序中使用它。

最后,如果你想为命令提供其他常见属性,比如命令文本或图像,我建议从ICommand接口派生一个新接口(对于eaxample,称为IUICommand),提供这些属性。加强链接中显示的CommandBinding类,以便在ToolStripItem中设置相应的属性不会花费太多精力。