【问题标题】:Adding events like Oncopy,Oncut,Onpate to a dynamically generated text box将 Oncopy、Oncut、Onpate 等事件添加到动态生成的文本框中
【发布时间】:2009-12-07 04:54:59
【问题描述】:

大家好,

如何在 Windows 窗体应用程序中将 oncopy、onpaste 等事件添加到动态生成的文本框...

【问题讨论】:

    标签: c# windows events forms textbox


    【解决方案1】:

    我首先会考虑对 TextBox 进行子类化。

    如果您将创建“许多”这样的文本框;我会考虑它们是否可以并且可能会在运行时被删除,以及添加:是否在某些情况下您想要“断开”一个或所有特殊事件的处理由这些特殊文本框中的一个或所有。

    虽然您可以采用覆盖表单的 ProcessCmdKeys 的策略(启用表单预览键)以在表单级别全局处理相关键状态的问题,但我不会去那里;我想将它隔离到特殊情况的文本框。 ProcessCmdKeys 的讨论在这里:

    link text

    可能对你有用。

    我想创建一个特殊的类来处理这些特殊文本框的实例化和管理,以及它们与这些特殊事件引发器的“endownment”:你可能想要保留一个 List 当前用于“追踪”他们。或者,如果您是子类化,则 List.

    ...请注意,我们跳过了从 TextBox 默认菜单中的选择触发粘贴或复制的可能性的整个问题:您启用了吗?这对你很重要吗?你需要“抑制那个菜单”吗?如果您希望仍然拥有该菜单,并且仍然“捕获”事件:恕我直言,您将不得不对 TextBox 进行子类化并定义 WndProc 并在其中捕获 WM_Paste 之类的事件。 ...

    这里有一个非常完整的代码示例,用于对 TextBox 进行子类化和处理 ProcessCmdKeys 并在此处捕获您感兴趣的各种事件:

    link text

    但请注意,我自己没有使用或测试过上面的代码,它只是归档在我的 sn-ps 的“存档”中,但至少,它会给你一个学习的基础.. . 如果你必须子类。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-22
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-04
      相关资源
      最近更新 更多