【发布时间】:2009-12-07 04:54:59
【问题描述】:
大家好,
如何在 Windows 窗体应用程序中将 oncopy、onpaste 等事件添加到动态生成的文本框...
【问题讨论】:
标签: c# windows events forms textbox
大家好,
如何在 Windows 窗体应用程序中将 oncopy、onpaste 等事件添加到动态生成的文本框...
【问题讨论】:
标签: c# windows events forms textbox
我首先会考虑对 TextBox 进行子类化。
如果您将创建“许多”这样的文本框;我会考虑它们是否可以并且可能会在运行时被删除,以及添加:是否在某些情况下您想要“断开”一个或所有特殊事件的处理由这些特殊文本框中的一个或所有。
虽然您可以采用覆盖表单的 ProcessCmdKeys 的策略(启用表单预览键)以在表单级别全局处理相关键状态的问题,但我不会去那里;我想将它隔离到特殊情况的文本框。 ProcessCmdKeys 的讨论在这里:
可能对你有用。
我想创建一个特殊的类来处理这些特殊文本框的实例化和管理,以及它们与这些特殊事件引发器的“endownment”:你可能想要保留一个 List
...请注意,我们跳过了从 TextBox 默认菜单中的选择触发粘贴或复制的可能性的整个问题:您启用了吗?这对你很重要吗?你需要“抑制那个菜单”吗?如果您希望仍然拥有该菜单,并且仍然“捕获”事件:恕我直言,您将不得不对 TextBox 进行子类化并定义 WndProc 并在其中捕获 WM_Paste 之类的事件。 ...
这里有一个非常完整的代码示例,用于对 TextBox 进行子类化和处理 ProcessCmdKeys 并在此处捕获您感兴趣的各种事件:
但请注意,我自己没有使用或测试过上面的代码,它只是归档在我的 sn-ps 的“存档”中,但至少,它会给你一个学习的基础.. . 如果你必须子类。
【讨论】: