首页 / 知识
关于winforms:如何以通用方式启用/禁用“剪切/复制/粘贴”菜单和工具栏项?
2023-04-17 03:09:00

How do I enable/disable Cut/Copy/Paste menu and toolbar items in a generic way?
我有一个Windows窗体应用程序,带有文本框,组合框,datagridview等控件。 我的应用程序有一个菜单栏,其中包含一个包含剪切/复制/粘贴/删除项的"编辑"项,还有一个带有这些项的工具栏。 如何根据具有焦点的控件的状态正确启用/禁用这些项目? 我正在寻找一种通用的方式,即我寻求一次实现的实现,并且可以在将来独立于我的应用程序将使用的控件而重复使用。 没有用于从Windows窗体控件获取剪切/复制/粘贴信息的通用接口或方法集。 我建议您最好的方法是为每种控件类型创建一个包装器类。然后,当您想要更新菜单状态时,您将获得具有焦点的当前控件并为其创建适当的包装。然后,您要求包装器提供所需的状态信息。这样,您只需要为所使用的每种控件类型创建包装器实现即可。开始时有些麻烦,但其他时候您只需要添加遇到的新控件即可。 剪贴板信息容易得多,因为您可以询问剪贴板单例内部是否有数据以及数据的类型。然后,您仍然需要询问目标控件是否可以接受该类型的信息,因此仍然需要做更多的工作。
为每个启用/禁用组创建一个阵列。将控件添加到数组中(当然,控件的类型必须正确,例如Object或Any等,取决于您使用的编程语言)。 |
最新内容
相关内容
linux启用命令模式?
linux启用命令模式?,系统,密码,数字,首页,电脑,情况,终端,界面,模式,命令,安装了linux,但进入时候直接进入了桌面,请问怎么进入命令模式,学习llinux启用6g命令?
linux启用6g命令?,系统,工作,情况,信息,设备,指标,管理,地址,命令,状态,在linux系统中,32位机,要打开超大文件(大于4G)并读取其内容用什么函数命令上一级菜单linux?
命令上一级菜单linux?,目录,电脑,系统,命令,位置,软件,名称,空格,上级,终端,linux命令中,在属主目录的位置,想要在上一级目录新建一个目录,但Python通用序列操作
Python通用序列操作,通用,步长,数据,位置,培训,数字,序列,索引,元素,操作,基本概念数据结构:是通过某种方式(例如对元素进行编号)组织在一起的pythonTKinter弹出式菜单的使用
pythonTKinter弹出式菜单的使用,培训,位置,系统,菜单,东坡,汽锅,参数,事件,肘子,上下文,1、弹出菜单也叫上下文菜单,建立菜单并向菜单添加各种pythonTKinter普通菜单的介绍
pythonTKinter普通菜单的介绍,培训,名称,菜单,果菜,顶层,快捷键,函数,实例,种类,定义,pythonTKinter普通菜单的介绍TKinter中的菜单种类比较如何检测是否已启用Vista UAC?
如何检测是否已启用Vista UAC?,如何检测是否已启用Vista UAC?,应用程序,用户,启用,计算,How to detect whether Vista UAC is enabled?关于python:如何以编程方式启用/禁
关于python:如何以编程方式启用/禁用网络接口? (Windows XP),关于python:如何以编程方式启用/禁用网络接口? (Windows XP),网络接口,启关于c#:. NET中是否有可序列化的通
关于c#:. NET中是否有可序列化的通用键/值对类?,关于c#:. NET中是否有可序列化的通用键/值对类?,对象,服务,包含,尝试,Is there a serial关于java:通用方法类型安全
关于java:通用方法类型安全,关于java:通用方法类型安全,对象,元数据,我有,您可以,Generic Method Type Safety
我有NodeTypes和Nodes的关于c#:在FlowDocument中启用嵌入式
关于c#:在FlowDocument中启用嵌入式控件,关于c#:在FlowDocument中启用嵌入式控件,超链接,文本,应用程序,我在,Enabling embedded control关于c#:如何在窗体上双缓冲.NET控件?
关于c#:如何在窗体上双缓冲.NET控件?,关于c#:如何在窗体上双缓冲.NET控件?,窗体,属性,设置,解决方案,How to double buffer .NET controls