C# 发生意外的鼠标单击事件.NET Compact Framework 3.5
我是c#.NET Compact Framework 3.5的新手 我试图阻止急切的用户排队等待鼠标事件。这有时会导致意外的点击 在.NET Compact Framework平台上忽略排队的鼠标消息的最佳方法是什么?遗憾的是,代码必须在UI线程上运行 我试过: 1.禁用窗口和应用程序.DoEvents();然后启用窗口-->它不工作。 2.我读了很多关于PeekMessage()-->的文章,但还是不明白 请推荐我可以学习的资源 非常感谢。像这样的东西C# 发生意外的鼠标单击事件.NET Compact Framework 3.5,c#,.net,compact-framework,message-queue,C#,.net,Compact Framework,Message Queue,我是c#.NET Compact Framework 3.5的新手 我试图阻止急切的用户排队等待鼠标事件。这有时会导致意外的点击 在.NET Compact Framework平台上忽略排队的鼠标消息的最佳方法是什么?遗憾的是,代码必须在UI线程上运行 我试过: 1.禁用窗口和应用程序.DoEvents();然后启用窗口-->它不工作。 2.我读了很多关于PeekMessage()-->的文章,但还是不明白 请推荐我可以学习的资源 非常感谢。像这样的东西 class MyForm : Form
class MyForm : Form
{
private bool _processing;
private void OnMousedown(....) // really depends on what you use,
// Click/doubleclick/Up/down - concept is the same
{
if (_processing)
return;
_processing = true;
// do something
. . . . . .
_processing = false;
}
. . . . .
您可能需要在每个控件事件上执行此操作
class MyForm : Form
{
private bool _processing;
private void OnMousedown(....) // really depends on what you use,
// Click/doubleclick/Up/down - concept is the same
{
if (_processing)
return;
_processing = true;
// do something
. . . . . .
_processing = false;
}
. . . . .
您可能需要在每个控件事件上执行此操作感谢Google和其他人,我使用了PeekMessage()…我将发布一个代码(可能会对某些人有所帮助)
感谢谷歌和其他人,我使用了PeekMessage()…我将发布一段代码(可能对某些人有所帮助)
这是…很酷…禁用触摸输入的另一个选项是使用带有小窗口(元素)的TouchRegisterWindow和TouchUnregisterWindow。可用于禁用当前对话框中的所有单击,而无需逐个禁用所有元素
详细信息参见禁用触摸输入的另一个选项是使用带有小窗口(元素)的TouchRegisterWindow和TouchUnregisterWindow。可用于禁用当前对话框中的所有单击,而无需逐个禁用所有元素
详细信息参见非常感谢您的回答。我试过同样的代码。最奇怪的是,有时它会放弃单击事件,但有时会出现意外的鼠标单击事件。@Tuvi请记住表单也是控件,您也可以尝试使用Lock。首先,感谢您的建议。问题是我的窗口由许多组件组成,一些控件相互关联,这就是为什么上面的方法处理起来有点复杂。非常感谢您的回答。我试过同样的代码。最奇怪的是,有时它会放弃单击事件,但有时会出现意外的鼠标单击事件。@Tuvi请记住表单也是控件,您也可以尝试使用Lock。首先,感谢您的建议。问题是我的窗口由许多组件组成,一些控件相互关联,这就是为什么上面的方法处理起来有点复杂。非常感谢您的推荐。这是一个有趣的方法。您能告诉我您是否在其他CE和WinMo/WEH操作系统上使用了此功能吗。文章中的评论提到它没有全面提供。TouchRegisterWindow是Windows Mobile操作系统的一部分,因为????(至少是Windows Mobile 2005),因此可以在任何经过认证的Windows Mobile 5/6设备上使用。@tcarvin我读了一篇文章。但通过上述解决方案,问题得以解决。我没有使用第三方库。因为系统在SD卡上运行。。。因此,我几乎不害怕缺乏记忆或一些相关的问题。最大的问题是我仍然不是专家。。。非常感谢…非常感谢你的推荐。这是一个有趣的方法。您能告诉我您是否在其他CE和WinMo/WEH操作系统上使用了此功能吗。文章中的评论提到它没有全面提供。TouchRegisterWindow是Windows Mobile操作系统的一部分,因为????(至少是Windows Mobile 2005),因此可以在任何经过认证的Windows Mobile 5/6设备上使用。@tcarvin我读了一篇文章。但通过上述解决方案,问题得以解决。我没有使用第三方库。因为系统在SD卡上运行。。。因此,我几乎不害怕缺乏记忆或一些相关的问题。最大的问题是我仍然不是专家。。。非常感谢你。。。