2015-06-29 43 views
0

我正在为我的Visual Basic课程编写一个Tic Tac Toe游戏(是的,这里有几百个有效的代码示例,但我希望这是我的代码),而我已经遇到了一些障碍。 我有程序设置,当鼠标悬停在图片框上时,显示用户“X”,并在鼠标离开时消失。这个功能非常漂亮,但是当单击该框时,图像不会保留,我需要它。我已经包含了每种代码的一种,你能帮我弄清楚我错过了什么吗? 谢谢!Visual Studio 2013 Picturebox Mouseover/Click Issue

'These subs display the users X upon mouseover 
Private Sub TRCorner_MouseMove(ByVal sender As Object, ByVal e As System.EventArgs) Handles TRCorner.MouseMove 
    TRCorner.Image = Image.FromFile("X.jpg") 
End Sub 

'These subs return the image to the border upon mouseleave 
Private Sub TRCorner_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TRCorner.MouseLeave 
    TRCorner.Image = Image.FromFile("Border.jpg") 
End Sub 

Private Sub TRCorner_Click(sender As Object, e As EventArgs) Handles TRCorner.Click 

    'Choose X or O image upon click 
    TRCorner.Image = Image.FromFile("X.jpg") 

End Sub 
+0

你的鼠标离开事件处理程序是博肯。它应该*不*恢复图像属性,当用户选择一个X或O.使用一个变量来跟踪。 –

回答

0

当你点击它时,你需要使处理器的行为不同。 在你的情况处理程序继续做它做的 - 在mouseleave事件设置您的图像。 对于应用程序,click事件不会禁用mouseleave事件。

您可以使用每个按钮的公共布尔值来定义所需的行为。 该值可以通过你的点击事件改变了,所以你可以禁用鼠标离开事件(设置按钮图像)

If clicked = true Then 
     TRCorner.Image = Image.FromFile("X.jpg") 
    Else 

    End If 
+0

谢谢!这使我走上了正确的道路。最后我用下面的代码固定的游戏: 私人小组BRCorner_MouseLeave(BYVAL发件人为对象,BYVALË作为System.EventArgs)把手BRCorner.MouseLeave 如果点击= TRUE,则 退出小组 否则 BRCorner.Image = Image.FromFile(“Border.jpg”) End If End Sub –