问题标签 [eventhandler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
395 浏览

c# - 如何通过反射从基于 Castle 的 DynamicProxy(如果有的话,调用订阅者)获取 EventHandler

我正在尝试使用 GetField() 以从实现 INotifyPropertyChanged 的​​类的基于 Castle 的动态代理获取 EventHandler。然而:

myObject.GetType().GetField( "PropertyChanged", BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance ) 返回空值。

有谁知道通过反射从类/类的动态代理(并调用任何订阅者)获取 EventHandler 的任何特殊技巧/方法?

0 投票
1 回答
853 浏览

vb.net - 键释放处理程序

所以,我想做的是在按下按钮时运行一段代码(我暂时使用右箭头键),并继续循环运行它,直到该键被释放。

所以,我当前的代码看起来像这样(我已经简化了它,因为它使用的是 SerialPorts,而且代码不容易理解):

最终,我想做的是通过串口功能控制和arduino。我已经把它连接到一辆便宜的遥控车上(我通常有几个 arduino 项目在路上),并且有代码可以让我通过 IDE 本身的箭头键来控制它。

但是,我对 VB.NET 的了解有限(我只接触了几年),所以我在谷歌的帮助下有点挣扎,在试图弄清楚如何保持串行端口时,这是一个上帝的结局打开(由于我的代码中的逻辑错误,它一直关闭)。

目标是,一旦我可以在 VB.NET 中通过箭头键控制它,我就可以设置一个更高级的程序,允许预编程路线(例如,我可以尝试“教”汽车指令集,以便我可以让它自动跟随电路,并将各种预编程的路线加载到其中)。我还计划一个屏幕上的 gui 来显示按下了什么按钮,以及我想到的任何其他内容。

此外,鉴于这是一个原型,我打算最终将 arduino 和 VB 程序连接到我的爱好级 rc,看看我是否可以得到带有预编程指令的计算机程序,以击败我的赛道。

好吧,在那篇小论文之后,我想这只是提前感谢,我项目其他领域的任何建议也很感激=)

0 投票
1 回答
556 浏览

vb.net - 按钮点击事件

我有一个关于 VB.NET 中 button.click 事件的快速问题。

我要做的是编写一段代码,当按下屏幕按钮时将运行一个循环,并在释放它时停止运行代码。

例如,它会在按下按钮时在两种颜色之间切换图片框,并在释放按钮时停止切换颜色(我不想这样做,但这是一个有用的示例)。

如何做到这一点?Button.Click 事件仅在您单击并释放按钮后触发,而我需要将这两者分离为单击处理程序和释放处理程序。

干杯

0 投票
1 回答
1202 浏览

c# - 网络摄像头帧事件处理程序停止和恢复 c#

我的程序有问题。我将 Aforge 用于视频流,ZXing 用于 qr 代码解码部分,c# 和 windows 窗体。

我在初始化函数中为每一帧设置了事件处理程序:

在 video_newFrame 中,我有我的应用程序所需的所有代码:它获取帧,计算它,找到 QR 码,解码它,检查“某事”,然后显示一个消息框;等等每一帧。我的问题是:当我显示二维码时,程序会计算它并出现消息框(带有确定按钮,因此应该停止应用程序);如果我用二维码离开相机视野,我希望当我点击确定按钮时,它将继续在代码中,下一帧将为空(意思是没有带有二维码的纸 - 所以下一帧中没有消息框!)。但事实并非如此!大多数时候,事件处理程序已经启动了对 video_newframe 的 1-2-3 调用,这意味着我将拥有另一个 1-2-3 消息框。代码是这样的:

我尝试了不同的事情:我尝试在开始时取消订阅事件处理程序,并在 video_newframe 函数结束时再次订阅:

但没有结果。

所以我尝试了一个 bool 值:我添加了一个 if 语句来检查 bool 值是否为真,如果是,它会输入“bool value = false”(以避免下一个事件处理),它会做这些事情和 if 值为 false 它返回;然后,当它在做这些事情时,在 DialogResult 的 if 中,在“// do something”中,我再次输入了“bool = true”。对我来说没有成功。

所以我的问题仍然存在:我只希望该功能始终有效;但我想,不知何故,当它找到结果(二维码)时,它会在只显示一个消息框所需的时间内停止触发事件;所以,例如,停止事件处理或类似的东西......

希望你能帮我!提前致谢!:)

Bartosz回答后编辑:

首先谢谢你!现在:我不知道单例或它们是什么,所以也感谢您的知识!不幸的是,问题仍然存在(可能是我的课程发展不好);我试过这个:

然后,我做了两个测试:创建一个全局变量并使用实例

在初始化方法中我有:

然后我像这样修改了 video_newframe 函数:

我认为这是对的,但是......不幸的是仍然有不止一个消息框:(

我在单例实现中做错了吗?再次感谢...!

0 投票
1 回答
95 浏览

vb.net - 我正在尝试在登录页面上收听 enter 键

这就是我到目前为止所拥有的。

意思是“Keycode 不是 system.eventargs 的成员。” 它还说“未声明密钥”。

我只想听回车键。

0 投票
3 回答
2472 浏览

java - 如何在 Bukkit 中使用此事件代码声明弹丸并取消其造成的伤害

我需要知道如何使用 getCause() 条件在 if 语句中声明弹丸。

然后,如果玩家在同一个帮派中,我需要知道如何取消该弹丸的伤害。

请给我一个关于如何处理的解释以及一些示例代码!

这是我的活动。

0 投票
2 回答
370 浏览

c# - WinSCP .NET 程序集:在 C++/CLI 中将自定义事件处理程序设置为 Session.FileTransferred

对不起,我有一个具体的问题。是的,这与为事件设置自定义事件处理程序有关。是的,这类问题可能已经被问过很多次了,但这里我只限于 WinSCP 的情况。

参考Session.SynchronizeDirectories方法中的示例:
http ://winscp.net/eng/docs/library_session_synchronizedirectories

我正在将 C# 示例转换为 C++/CLI,但遇到问题。

在 C# 中,设置为:

在 C++/CLI 中,我执行以下操作:

但我得到这个错误:

函数 FileTransferred() 与委托类型“void (System::Object ^, System::EventArgs ^)”不匹配。

我尝试更改为FileTransferred(System::Object ^sender, EventArgs ^e),但随后整个身体FileTransferred()变得无效。

0 投票
0 回答
802 浏览

c# - 如何从 ContentPage 触发 UserControl 中按钮的单击事件?

我有一个购物车UserControlMasterPage我有以下功能:用户将商品添加到购物车。单击页面中的buttonComplete Sale”后UserControl重定向到“ CustomerInfo.aspx”,并在填写客户信息并单击 CustomerInfo.aspx 页面上的提交后,我想从“”页面调用 UserControl 的“ Complete Sale” 。click eventCustomerinfo.aspx

客户信息.aspx.cs

此处的Button文本更改为UserControl. 但是我不能从(ContentPage)中调用Click event这个有什么建议吗?buttonCustomerInfo.aspx

0 投票
1 回答
79 浏览

c# - 带有匿名方法的 EventHandler 是如何工作的?

目前,我有一个从命名管道异步接收数据的 Windows 窗体。为避免出现“跨线程操作无效:从创建它的线程以外的线程访问的控件‘myTextBox’”,我正在使用匿名方法(请参阅http://www.codeproject.com/Articles/28485/ NET-Part-of-n 的初学者指南):

我的问题是,“new EventHandler(delegate”) 行是做什么的?它会创建一个委托的委托吗?有人可以解释一下,我将如何使用命名委托来实现上述功能(只是为了帮助理解它) ? TIA。

0 投票
2 回答
360 浏览

c# - C# 线程池和 ElapsedEventHandler

我有一个应在 30 分钟内完成的应用程序。应用程序的组件使用线程池运行。

所以

所以逻辑是调用 ThreadPool 中的所有组件,并使用 ManualResetEvent 类向主线程发出组件已完成的信号。

现在我想使用 ElapsedEvent 处理程序来确保代码在某个时间范围内(比如 30 分钟)优雅地完成。因此,30 分钟后,如果仍有一些线程在运行,我想中止它们。

所以我的问题是会调用ElapsedEventHandler委托吗?还是主线程会等待WaitHandle.WaitAll(sectionsCompleted.ToArray())

有没有其他方法可以实现在一段时间间隔后停止线程池中的所有线程的功能。