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

发布于 2024-12-05 07:30:51 字数 238 浏览 0 评论 0原文

我一定错过了一些明显的东西 - 我是 .NET 的新手 - 多年来一直在 C++/MFC 中开发。

在按钮单击的事件处理程序中,我想重新使用另一个事件处理程序/单击。但是,我似乎不知道该怎么做。

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

看来我应该只能调用该方法......

但我似乎无法做到这一点。

这是在紧凑框架/Win Mobile 中

I must be missing something obvious - I am new to .NET - been developing in C++/MFC for years.

In an event handler for a button click I would like to then re-use another event handler/click. However, I can't seem to figure out how to do that.

The bit that may be causing trouble is that the handler for the second item I want to "fire" is not on the same form/context.

It seems that I should just be able to call the method...

But I don't seem to be able to do it.

This is in compact framework/Win Mobile

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

伤感在游骋 2024-12-12 07:30:52

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

My ignorance. I just didn't have visibility to the other handler. This is a simple problem to solve - I just made the handler visible to the object/form that handles the second event and it is easy to fire the other event.

不醒的梦 2024-12-12 07:30:51

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

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

You need to do one of the following:

  • Provide access to the handler's containing class instance (i.e. a reference to that object)
  • Make the handler a static so any instance can reference it directly
  • Put the handler in some other globally available object (static, singleton, etc) so both consumers can use it
  • Use a framework that provides event aggregation so you don't have to worry about such things
北城挽邺 2024-12-12 07:30:51

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

How about you factor out the common code into a private method? Then you can call that method from both handlers.

不知所踪 2024-12-12 07:30:51

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

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

I think a better solution would be to refactor your code so that the work done by the original event handler is contained within a function.

Then both the original handler and the new handler both call the same function.

好多鱼好多余 2024-12-12 07:30:51

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

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

Inside of event handler 1, just raise the event that event handler 2 is "listening" for. So inside event handler 1, put OnEvent(). Note that event handler 2 must have already been hooked up to listen to the event.

I can speak in more specificity if you show some more code, but this may be enough.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文