How do I enable/disable Cut/Copy/Paste menu and toolbar items in a generic way?
我有一个Windows窗体应用程序,带有文本框,组合框,datagridview等控件。 我的应用程序有一个菜单栏,其中包含一个包含剪切/复制/粘贴/删除项的"编辑"项,还有一个带有这些项的工具栏。 如何根据具有焦点的控件的状态正确启用/禁用这些项目? 我正在寻找一种通用的方式,即我寻求一次实现的实现,并且可以在将来独立于我的应用程序将使用的控件而重复使用。 没有用于从Windows窗体控件获取剪切/复制/粘贴信息的通用接口或方法集。 我建议您最好的方法是为每种控件类型创建一个包装器类。然后,当您想要更新菜单状态时,您将获得具有焦点的当前控件并为其创建适当的包装。然后,您要求包装器提供所需的状态信息。这样,您只需要为所使用的每种控件类型创建包装器实现即可。开始时有些麻烦,但其他时候您只需要添加遇到的新控件即可。 剪贴板信息容易得多,因为您可以询问剪贴板单例内部是否有数据以及数据的类型。然后,您仍然需要询问目标控件是否可以接受该类型的信息,因此仍然需要做更多的工作。
为每个启用/禁用组创建一个阵列。将控件添加到数组中(当然,控件的类型必须正确,例如Object或Any等,取决于您使用的编程语言)。 |