gpt4 book ai didi

c# - 同时检测鼠标左键和右键单击?

转载 作者:太空狗 更新时间:2023-10-29 22:28:58 46 4
gpt4 key购买 nike

我正在重新制作 windows Minesweeper(来自 XP),其中包含的内容是,如果您同时用鼠标左右键单击一个带有与该数字一样多的标志的数字,它会显示所有其他隐藏的图 block 大约那个数字。

我很难判断何时同时按下鼠标左键和右键...我正在使用一对 bool 值,每个按钮对应一个 OnMouseDown 和 OnMouseUp 事件,但是如果2 个按钮在同一时间(或真正关闭)被单击,然后只有一个 MouseDown 事件发生而另一个没有发生......如果您单击并按住其中一个按钮然后单击并按住另一个按钮,代码将起作用虽然。

有没有更好的方法来检测这种“双重”点击?

编辑:

好吧,关于我为什么把它搞砸的小故事(它一直有效)。

我有一台运行 Windows 7 的 macbook pro。对于那些不知道的人,macbook pro 有一个鼠标按钮栏,通常是左键单击,但如果你将 2 根手指放在它下面,它就是右键单击,所以您不能同时执行这两项操作(也无法单击鼠标中键)。所以我正在构建我的应用程序并将其发送给我的 friend ,他告诉我它不起作用,所以我发布了这个问题。我最终决定在我的另一台笔记本电脑上试用它,这是一台带 2 个鼠标按钮的 Dell XPS ... 一旦它在那里工作,我就将它传递给其他 friend ,他们确认它有效。我不知道我的第一个 friend 是怎么把它搞砸的,但这个故事的寓意是不要买任何苹果产品。至少那是我得到的道德。

最佳答案

为默认为 false 的左右按钮创建一个类 bool 变量。当鼠标按下事件触发时,将变量设置为 true 并检查两者是否为 true。当鼠标向上触发时,将变量设置为 false。

    public bool m_right = false;
public bool m_left = false;

private void MainForm_MouseDown(object sender, MouseEventArgs e)
{
m_objGraphics.Clear(SystemColors.Control);

if (e.Button == MouseButtons.Left)
m_left = true;
if (e.Button == MouseButtons.Right)
m_right = true;

if (m_left == false || m_right == false) return;
//do something here
}

private void MainForm_MouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
m_left = false;
if (e.Button == MouseButtons.Right)
m_right = false;
}

关于c# - 同时检测鼠标左键和右键单击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3209217/

46 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com