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
如何在.NET中重复鼠标单击_.net_Focus_Mouse_Click_Repeat - Fatal编程技术网

如何在.NET中重复鼠标单击

如何在.NET中重复鼠标单击,.net,focus,mouse,click,repeat,.net,Focus,Mouse,Click,Repeat,我的应用程序在另一个窗口应用程序中作为插件运行。因此,我的窗口通常没有焦点。现在,如果有人将鼠标移到按钮/菜单上并单击一次,它所做的就是将焦点设置到我的窗口。然后,他需要再次单击以获得实际的按钮功能 这是个小麻烦,但我想把它处理掉。首先,每当鼠标进入我的对话空间时,我都试图要求焦点,但事实证明这更令人恼火。所以我想做的是重复鼠标点击,这样看起来好像一次点击都改变了焦点并按下了按钮 显然,我应该只在点击导致设置焦点时才这样做,否则它将运行按钮功能两次 有什么建议吗 深深地、永远地感激, 大卫我建议

我的应用程序在另一个窗口应用程序中作为插件运行。因此,我的窗口通常没有焦点。现在,如果有人将鼠标移到按钮/菜单上并单击一次,它所做的就是将焦点设置到我的窗口。然后,他需要再次单击以获得实际的按钮功能

这是个小麻烦,但我想把它处理掉。首先,每当鼠标进入我的对话空间时,我都试图要求焦点,但事实证明这更令人恼火。所以我想做的是重复鼠标点击,这样看起来好像一次点击都改变了焦点并按下了按钮

显然,我应该只在点击导致设置焦点时才这样做,否则它将运行按钮功能两次

有什么建议吗

深深地、永远地感激,
大卫

我建议你保持原样;这是操作系统的标准行为,更改操作系统可能会违反标准的可用性准则

鼠标点击模拟在这里似乎有点混乱,但您始终可以通过p/Invoke在任意位置(X,Y)模拟任何鼠标点击:

[DllImport("user32.dll", SetLastError=true)]
static extern uint SendInput(uint nInputs, INPUT [] pInputs, int cbSize);

你也可以直接传播/生成WM_MOUSEXXXXX消息,但我已经玩了很多次了,相信我,我说这完全是胡闹。

重点是,我也不喜欢脱离UI惯例,但常规行为很烦人。谢谢,我将尝试这些。