如何在Panel中获取click事件的坐标?

时间:2011-12-16 13:11:03

标签: c# c++ visual-studio visual-studio-2010 c++-cli

如何在面板内获取鼠标点击的坐标? 例如,我希望能够在我用鼠标点击的任何地方放置像素。我可以处理绘图部分,但我不知道如何使我的程序听取点击事件,以及如何获得它的x / y坐标,以便它可以在正确的位置绘制。

我从未见过类似的代码,而且我无法通过谷歌找到相关信息,因此我无法显示任何代码“我是如何尝试实现的”因为我根本没有:/我没有线索怎么开始我可能正在搜索错误的关键字,但我确信它可以完成。

编辑:谢谢大家

3 个答案:

答案 0 :(得分:4)

Click事件不是正确的选择。它可以由鼠标和键盘生成,因此它不会通过鼠标位置。例如,可以通过按空格键来单击按钮。这当然不会发生在专家组中。只需使用MouseUp事件即可。检查传递的e-> Button属性。

面板不是btw的好选择。它不是双缓冲的,因此当绘图错综复杂时,它可能会开始闪烁。当尺寸改变时,它不会正确重绘。 PictureBox没有这些问题。只需将其视为面板,实现其Paint事件,不要设置Image属性。

答案 1 :(得分:2)

Here是您的问题的完整提示,包含代码。对于面板,您可以使用mouseDown事件。从事件论证中你可以获得协调。

答案 2 :(得分:1)

private: System::Void panel1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) 
{    
     int x= e->X;
     int y= e->y;
}