C#GUI宏库还是通用方法?

C#GUI宏库还是通用方法?,c#,winforms,user-interface,macros,C#,Winforms,User Interface,Macros,在C#WinForms应用程序(在.NET3.5上,可能是4.0Soonish上)中,如何允许用户定义自己的宏?例如,用户可能希望按CTRL+K键表示单击菜单中的某个项目,并在菜单打开的对话框中输入一些文本,然后按“确定”关闭对话框 理想情况下,我们的软件可以提供宏录制功能,使用户只需开始录制,执行所需任务,停止录制即可使用宏。这是他们从旧版本软件中使用的一项功能,该软件是用FoxPro编写的,FoxPro是一种内置了这种功能的工具 对我们来说,最好的选择显然是获得并使用某种经过测试的第三方库,

在C#WinForms应用程序(在.NET3.5上,可能是4.0Soonish上)中,如何允许用户定义自己的宏?例如,用户可能希望按CTRL+K键表示单击菜单中的某个项目,并在菜单打开的对话框中输入一些文本,然后按“确定”关闭对话框

理想情况下,我们的软件可以提供宏录制功能,使用户只需开始录制,执行所需任务,停止录制即可使用宏。这是他们从旧版本软件中使用的一项功能,该软件是用FoxPro编写的,FoxPro是一种内置了这种功能的工具


对我们来说,最好的选择显然是获得并使用某种经过测试的第三方库,但我们也很欣赏推出我们自己版本的想法。

我对宏录制功能的“命令设计模式”有很好的经验。每个命令都会触发一些应用程序范围(例如静态)的事件,其中包含有关参数等的信息。。。记录器侦听此事件并保持命令调用顺序。

如果我正在处理类似的事情,我可能会集成一个通用eventhandler来记录您希望可记录的事件(可能是作为一个单独的处理程序添加到可用的按钮中,或者通过创建一个RecordedEventHandler类来扩展EventHandler,然后从中对所有事件处理进行子类化——这些都是最重要的想法,所以我没有研究哪种方法最可行),只需使用“record宏”按钮作为开关。可能只需要记录几种不同类型的事件-按钮单击、任何文本字段上的键盘输入、键盘快捷键和任何鼠标输入字段上的鼠标输入,所以这不是一项非常繁重的任务,当然要解决如何存储和绑定宏以及如何方便im如果你愿意的话,移植和导出很费时,但在技术上并不具有挑战性。我不知道有任何用于此目的的库(尽管我希望存在一些库),考虑到它,我不确定集成这样的库有多容易,因为大多数人对宏的需求可能会有所不同

如果您需要能够记录应用程序周围的事件,那么您可能会发现