C# GUI 宏库或通用方法?

标签 c# winforms user-interface macros

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

理想情况下,我们的软件可以提供宏录制功能,使用户能够开始录制、执行所需的任务,然后停止录制以获得可用的宏。这是他们习惯于使用旧版本软件的功能,该软件是用 FoxPro 编写的,该工具内置了此类功能。

对我们来说,最好的选择显然是获取和使用某种久经考验的第三方库,但我们也欢迎推出我们自己的版本的想法。

最佳答案

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

如果您需要能够记录应用程序周围的事件,那么您可能会找到 ManagedWinApi有帮助。

关于C# GUI 宏库或通用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2146397/

相关文章:

c# - 使用 HtmlAgilityPack 确定字符串是否仅包含允许标签列表中的标签

c# - 将字节数组转换为 int32

c# - 使用 Process.Start() 时 Windows 窗体 MouseUp 触发两次

flutter - 如何在flutter中删除DropDownSearch的边框

c++ - QObject 多重继承

java - JPanel 中的 JButton 方向

c# - 适用于 Microsoft Azure 平台的应用程序,而非网站

c# - 指定要使用的 MSDataSetGenerator 工具版本?

c# - 这个嵌套循环如何输出一个分为 3 个部分的列表,每个部分有 3 个单词?

c# - 向应用程序添加帮助窗口 - C#