我有一个 Windows 窗体应用程序,其中包含文本框、组合框、datagridview 等控件。
这些控件允许用户使用剪贴板,即剪切/复制和粘贴文本。还可以删除文本(与剪贴板无关)。
我的应用程序有一个菜单栏,其中包含一个包含剪切/复制/粘贴/删除项目的编辑项目,以及一个包含这些项目的工具栏。如何根据具有焦点的控件的状态正确启用/禁用这些项目?
我正在寻找一种通用的方法,即我寻找一个我做过一次的实现,并且可以在将来独立于我的应用程序将使用的控件而重用。
没有用于从 Windows 窗体控件获取剪切/复制/粘贴信息的通用接口或方法集。
我建议最好的方法是为每种类型的控件创建一个包装类。然后,当您想要更新菜单状态时,您将获得具有焦点的当前控件并为其创建适当的包装器。然后你向包装器询问你需要的状态信息。这样,您只需为您使用的每种类型的控件创建一个包装器实现。一开始有点痛苦,但其他时候你只需要添加你遇到的新控件。
剪贴板信息要容易得多,因为您可以询问剪贴板单例里面是否有数据以及数据是什么类型。然后,您仍然需要询问目标控件是否可以接受该类型的信息,因此仍然需要做额外的工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)