Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 发生意外的鼠标单击事件.NET Compact Framework 3.5_C#_.net_Compact Framework_Message Queue - Fatal编程技术网

C# 发生意外的鼠标单击事件.NET Compact Framework 3.5

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

我是c#.NET Compact Framework 3.5的新手

我试图阻止急切的用户排队等待鼠标事件。这有时会导致意外的点击

在.NET Compact Framework平台上忽略排队的鼠标消息的最佳方法是什么?遗憾的是,代码必须在UI线程上运行

我试过: 1.禁用窗口和应用程序.DoEvents();然后启用窗口-->它不工作。 2.我读了很多关于PeekMessage()-->的文章,但还是不明白

请推荐我可以学习的资源

非常感谢。

像这样的东西

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卡上运行。。。因此,我几乎不害怕缺乏记忆或一些相关的问题。最大的问题是我仍然不是专家。。。非常感谢你。。。