如何从另一个处理程序调用/调用按钮单击事件处理程序? (C# )

时间:2011-09-15 15:30:01

标签: c# event-handling compact-framework

我必须错过一些显而易见的东西 - 我是.NET新手 - 多年来一直在C ++ / MFC中开发。

在按钮单击的事件处理程序中,我想重新使用另一个事件处理程序/单击。但是,我似乎无法弄清楚如何做到这一点。

可能导致麻烦的一点是我要“触发”的第二个项目的处理程序不在同一个表单/上下文中。

似乎我应该能够调用方法......

但我似乎无法做到。

这是在紧凑的框架/ Win Mobile

5 个答案:

答案 0 :(得分:3)

您需要执行以下操作之一:

  • 提供对包含类实例的处理程序的访问(即对该对象的引用)
  • 使处理程序成为静态,以便任何实例都可以直接引用它
  • 将处理程序放在其他全局可用对象(静态,单例等)中,以便两个消费者都可以使用它
  • 使用提供事件聚合的框架,这样您就不必担心这些事情

答案 1 :(得分:2)

如何将公共代码分解为私有方法?然后,您可以从两个处理程序中调用该方法。

答案 2 :(得分:1)

我认为更好的解决方案是重构代码,以便原始事件处理程序完成的工作包含在函数中。

然后原始处理程序和新处理程序都调用相同的函数。

答案 3 :(得分:0)

在事件处理程序1内部,只需引发事件处理程序2“正在侦听”的事件。所以在事件处理程序1内部,放置OnEvent()。请注意,必须已连接事件处理程序2以侦听事件。

如果您展示更多代码,我可以更具体地说话,但这可能就足够了。

答案 4 :(得分:0)

我的无知。我只是没有其他处理程序的可见性。这是一个需要解决的简单问题 - 我只是让处理器对处理第二个事件的对象/表单可见,并且很容易触发另一个事件。