无法点击按钮

时间:2016-05-23 18:21:47

标签: vb.net button

所以,我正在开发一个YouTube模拟游戏。目前我在YouTube网站上工作。在游戏中,您应该能够自定义您的频道头像和横幅。所以,就像在真实的YouTube网站上一样,我创建了两个按钮,当点击它们时,打开一个OpenFileDialog,其中播放器应该选择图像文件。唯一的问题是,您无法出于某种原因点击按钮。 以下是表单的内容:

The Form in the Designer

这是我的代码:

#Region "Edit Buttons"
    Sub ShowEditBanner() Handles BannerBox.MouseEnter
        BannerEditButton.Visible = True
        AvatarEditButton.Visible = True
        BannerEditButton.BringToFront()
        AvatarEditButton.BringToFront()
    End Sub

    Sub ShowEditAvatar() Handles AvatarBox.MouseEnter
        BannerEditButton.Visible = True
        AvatarEditButton.Visible = True
        BannerEditButton.BringToFront()
        AvatarEditButton.BringToFront()
    End Sub

    Sub HideEditBanner() Handles BannerBox.MouseLeave
        BannerEditButton.Visible = False
        AvatarEditButton.Visible = False
    End Sub

    Sub HideEditAvatar() Handles AvatarBox.MouseLeave
        BannerEditButton.Visible = False
        AvatarEditButton.Visible = False
    End Sub
#End Region

    Sub EditAvatar() Handles AvatarEditButton.Click
        If AvatarFileDialog.ShowDialog = DialogResult.OK Then
            Try
                Dim Img As Image = Image.FromFile(AvatarFileDialog.FileName)
                AvatarBox.Image = Img
            Catch ex As Exception
                MsgBox("Invalid file.", MsgBoxStyle.Critical, "Error")
            End Try
        End If
    End Sub

任何帮助都会受到关注!

~Mika / OneByte _

1 个答案:

答案 0 :(得分:1)

您遇到的是当按钮的MouseEnter事件尝试在AvatarBox的MouseLeave事件试图隐藏它时同时显示按钮时发生的错误。

要修复它,您只需要检查MouseLeave事件,如果鼠标仍然在控件的范围内。如果不是:隐藏按钮。

If AvatarBox.ClientRectangle.Contains(Me.PointToClient(Cursor.Position)) = False Then
    AvatarEditButton.Visible = False
End If

逻辑适用于您的控件。