我一定错过了一些明显的东西-我是。net新手-多年来一直在c++/MFC中开发。
在按钮单击的事件处理程序中,我想然后重用另一个事件处理程序/单击。然而,我似乎不知道该怎么做。
可能导致问题的位是我想要"触发"的第二个项的处理程序不在同一形式/上下文中。
似乎我应该能够调用方法…
但是我似乎做不到。
这是在compact framework/Win Mobile
您需要执行以下操作之一:
- 提供对包含类实例的处理程序的访问(即对该对象的引用)
- 将处理程序设置为静态,以便任何实例都可以直接引用它
- 将处理程序放在其他全局可用的对象(静态,单例等)中,以便两个消费者都可以使用它
- 使用一个提供事件聚合的框架,这样你就不必担心这些事情了
将公共代码分解为私有方法如何?然后,您可以从两个处理程序调用该方法。
我认为更好的解决方案是重构代码,以便将原始事件处理程序所做的工作包含在函数中。
则原处理程序和新处理程序都调用同一个函数
在事件处理程序1的内部,只引发事件处理程序2正在"监听"的事件。在事件处理器1中,放入OnEvent()
。注意,事件处理程序2必须已经连接起来以侦听事件。
如果您展示更多的代码,我可以更具体地说,但这可能就足够了。
我的无知。我只是没办法看到另一个联络人。这是一个要解决的简单问题——我只是使处理第二个事件的处理程序对对象/表单可见,并且很容易触发另一个事件。