我正在开发一个c ++ CLI应用程序,并且遇到一些事件困难。我想知道是否可以在单击鼠标按钮时触发事件。例如,我想检查鼠标是否已经移动到下一个正方形,只要他们点击了鼠标。意思是如果他们点击方块1他们应该能够保持该点击并移动方块2和我的程序认识到这一点
我在鼠标上运行了许多不同的事件,包括“点击”事件,但按下按钮时不会触发悬停,鼠标输入或鼠标按下事件。 “MouseClick”事件也是如此。我尝试只使用mouseDown事件,但这不会让另一个mouseDown事件,鼠标输入或悬停事件触发。
没有检查鼠标位置我不知道我能做什么。我不想做鼠标位置检查。
如果有人有任何想法,我们将不胜感激。
答案 0 :(得分:2)
显然,您需要注意MouseMove事件,以便您可以看到鼠标移动到另一个方块。大致是:
void panel1_MouseMove(Object^ sender, MouseEventArgs^ e) {
if ((e->Button & System::Windows::Forms::MouseButtons::Left) ==
System::Windows::Forms::MouseButtons::Left) {
int square = MapPosToSquare(e->Location);
if (square != currentSquare) {
currentSquare = square;
OnSquareClicked(currentSquare);
}
}
}
如果这些“正方形”实际上是控件,那么你有一个不同的问题。您必须在MouseDown事件处理程序中将控件的Capture属性设置为false,以便它不捕获鼠标。