识别面板中的鼠标点击及其相关控件c#

时间:2015-07-23 07:32:39

标签: c#

我有一个面板,根据所需的(六边形)网格图像调整大小,按钮和一些参数产生,并作为背景图像加载到面板中。
该面板有一个鼠标点击事件,该事件从选择了十六进制的坐标开始计算,然后用户可以将该图块添加到该十六进制中,以png的形式加载到位于适当位置的图片框中。
可以将许多图块添加到网格中。但是,一旦添加了一个图块,单击该十六进制时我的鼠标点击事件就不会再触发了。 (大概是因为你现在点击图片框而不是面板?)
如何才能最好地解决此问题,因为我希望用户能够重新选择他们放置和操作(旋转)或删除它们的磁贴。 如果我无法确定点击哪个十六进制,我就无法确定需要哪个图片框...

我设法想到的唯一解决方案是为每个添加的控件添加一个鼠标点击事件,但我不知道我可能有多少个字符,所以如何计划如何我需要做很多事件?(我怀疑我在某个地方遇到了精神障碍)

2 个答案:

答案 0 :(得分:1)

一种可能的解决方案是遍历所有图片框所在的面板,然后为这些图片框创建鼠标点击事件,然后你可以在活动中完成你的工作。

答案 1 :(得分:0)

感谢Sinatr。

我通过向每个图片框添加一个事件处理程序解决了这个问题,并将鼠标点击指向使用控件名称来识别单击哪一个的相同方法。由于我的图片框被一致地命名以反映他们占据的十六进制,所以它是直截了当的。

密钥是将发件人作为控件投射。

private void SetClickedHexFromPB(object sender, EventArgs e)
    {
        string name = (sender as Control).Name;