在Visual Studio中是否有Delphi的ActionManager替代方案

8
我对VS和C#相对较新,但在Delphi方面有多年的经验。 在设计GUI时,我最喜欢的组件之一是ActionManager——一种集中分配事件处理程序以及启用/禁用它们的方法。 令人惊讶的是,在Visual Studio 2008 Professional中找不到类似的东西。 我相信应该有第三方实现,但我更喜欢标准的东西。
有人能为我提供建议吗?也许有某种替代方法可以有效地管理GUI操作,我可能错过了吗?

你是不是想说TActionList?TActionManager不是更适用于高级菜单和工具栏吗? - Lars Truijens
1
可能是重复问题:https://dev59.com/fkbRa4cB1Zd3GeqPzmDw - Lars Truijens
2个回答

4

谢谢,这似乎非常接近,但不幸的是它不适用于WinForms。我不确定是时候转向WPF了,但似乎微软将WinForms定位为过时技术。对他们来说不是很好。 - koldovsky

1

我也很喜欢ActionManager。当时我并不知道,但它只是Model-View-Controller的一个花哨实现。回想起来,Delphi对于一个没有准备好的开发者社区来说太先进了 8-)

回到你的问题,C#有事件和委托的概念,它们相当于操作和它们的处理程序。你将控件事件(或GUI操作)绑定到委托上。例如,

mybutton.Click += HandleMyButtonClick;

Click 将是一个带有签名 void (object sender, EventArgs e) 的委托。这个签名将会在 HandleMyButtonClick 方法之后出现,就像这样。

void HandleMyButtonClick(object sender, EventArgs e)

在控件的类文档中,将会有一个列出所有被触发事件的部分。这些事件也会描述处理它们所需的委托签名。

我可以问一下为什么得了负分吗? - user1342582
2
我没有点踩,但是行动不仅仅是调用一个方法。它们还提供了一个集中的地方来提供标题、图像和更新操作(如禁用操作)。 - Lars Truijens
因此我使用了“MVC的花式实现” 8-) 原帖并没有明确说明他想要多接近ActionManager的替代方案。我假设他不知道委托和事件,并且他可以通过这些知识构建自己的ActionManager。无论如何,感谢您的理解。 - user1342582
我不知道是谁得了负分。看起来投票系统并不完美。 我喜欢你的回答,尽管它没有为我带来任何新的东西。无论如何,感谢你的回答。 - koldovsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接