0

与此线程相关: 如何在 C# 中并行化事件处理程序执行

我正在使用 winforms 中的代码编辑器,我一次使用 keyup 和 mousemove 来实现单独的方法。

问题是每次我的 mousemove 事件处理程序处于活动状态时,keyup 不起作用或相互冲突。

我正在研究工具提示,但有单独的功能。

对于 mousemove 功能,每次我将分配的关键字悬停在 Richtextbox 上时,都会出现工具提示。

在keyup中,每次我输入关键字+“(”工具提示都会出现。

所以我的问题是如何修复两个事件处理程序并使其一次启用,使用 system.threading 或并行。

使用的事件:

 private void rtb_CS_MouseMove(object sender, MouseEventArgs e){}    
 private void rtb_CS_KeyUp(object sender, MouseEventArgs e){}
4

1 回答 1

0

首先我想说的是,如果您希望我们找到代码中的冲突,您应该分享您的代码。其次,您需要扩展对您的应用程序中出了什么问题的解释。我不知道是什么问题,什么时候出现。你是什​​么意思“mousemove 事件处理程序已启用”?等等。

现在,对于答案本身。它仅基于您所写的内容,因此如果您提供更多信息,我可能会删除它:

当处理多个事件时,您的句柄可能需要多个滴答声,那么您应该创建一个线程来处理该事件:

private void rtb_CS_MouseMove(object sender, MouseEventArgs e)
{
   Thread trd = new Thread(new ParameterizedThreadStart(HandleMouseMove));
   trd.Start(e);
}  

private static void HandleMouseMove(object obj)
{
     // your handle
}
于 2013-08-29T08:36:14.900 回答