Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.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# 拖放;请点击;“不允许区域”;通知_C#_.net_Wpf_Windows - Fatal编程技术网

C# 拖放;请点击;“不允许区域”;通知

C# 拖放;请点击;“不允许区域”;通知,c#,.net,wpf,windows,C#,.net,Wpf,Windows,我们有以下问题: 我们有一个包含项目的应用程序 这些项目应该可以在桌面上拖放 一旦我们进入drag,项目(在应用程序中)就会隐藏 现在,如果我们把它放到任何地方,就会创建一个快捷方式,并且该项目应该在应用程序中再次可见 问题: 当用户将其放到不可删除的区域时,操作系统不会发出任何通知(据我们所知),因此我们无法使隐藏的项目(在应用程序中)再次可见 希望这里有人能帮助我们,或者有一些好的建议或解决方法。因为这是一个很难解决的问题。创建一个时钟为50/100ms的计时器,并检查鼠标按钮的状态。如果它

我们有以下问题:

我们有一个包含项目的应用程序

这些项目应该可以在桌面上拖放

一旦我们进入drag,项目(在应用程序中)就会隐藏

现在,如果我们把它放到任何地方,就会创建一个快捷方式,并且该项目应该在应用程序中再次可见

问题: 当用户将其放到不可删除的区域时,操作系统不会发出任何通知(据我们所知),因此我们无法使隐藏的项目(在应用程序中)再次可见


希望这里有人能帮助我们,或者有一些好的建议或解决方法。因为这是一个很难解决的问题。

创建一个时钟为50/100ms的计时器,并检查鼠标按钮的状态。如果它被发布,并且还没有出现任何事件,那么用户会掉到一个无效的位置。

哪种语言是c或c#或wpf或winforms…这不是DoDragDrop()的返回值的目的吗?我想我们已经找到了答案:(对于任何搜索过的人)嗯,是的,我们已经考虑过类似的事情:只要监视“鼠标左键。释放事件”“在开始拖动后发生。但不幸的是,这需要一个到系统的钩子,因为我们无法监视应用程序之外的事件。@因为不需要钩子,您可以尝试这样做:如果它符合您的要求。非常感谢您的输入!但是,该功能似乎并不可靠,如您的链接描述中所述。“尽管返回值的最低有效位指示自上次查询以来是否已按下该键,但由于Windows具有先发制人的多任务性质,另一个应用程序可以调用GetAsyncKeyState并接收“最近按下的”“位而不是您的应用程序。返回值最低有效位的行为严格保留,以与16位Windows应用程序(非抢占)兼容,不应依赖。”