大家好 我正在努力解决大学项目中的一些问题。 我正在c#中为我的大学c#课程中的一个项目构建一个“连续4次”游戏。
我创建了一个名为GameForm的Form,在其中我添加了一个名为panelBoardGame的Panel。 到那个panelBoardGame我添加了一个可点击的标签数组(执行一个移动),我也添加了一个标签矩阵,代表董事会本身。
现在,我的任务是每当鼠标位于Panel区域内时,某个玩家的CoinImage随着Cursor移动,只要它在面板区域内。当鼠标在区域外时,CoinImage不会显示。
为此,我尝试触发panelBoardGame的onMouseEnter,OnMouseLeave事件,但不知怎的,它们甚至都不会被执行。 每当我的鼠标在panelBoardGame区域内时,panelBoardGame_MouseMove(......)函数内的代码都不会被执行。
任何人都可以帮助我吗?
由于我是新手,我无法发布图片,但我已将图片上传到 Image of the Form
这是Form的图像,里面有一个黑色的边框是面板,面板里面我添加了标签
答案 0 :(得分:2)
移动和悬停事件很可能会转到最顶层的控件(标签)。您的任何面板是否显示?
您可以在Panel的MouseEnter事件中捕获鼠标。
boardPanel.Capture = true;
但这可能会干扰标签中的鼠标处理。
总而言之,您可能会发现正确地获取此(UI)比看起来要难得多。考虑一个更简单的点击动作设计。首先。
答案 1 :(得分:1)
让我猜一下,你的标签完全覆盖了面板的区域。在Windows中,只有顶部控件接收鼠标事件。因此,当鼠标位于其中一个标签上时,鼠标事件将转到标签,而不是包含标签的面板。因此,在标签上设置一个MouseMove事件处理程序,您将看到执行。