所以,我正在开发一个YouTube模拟游戏。目前我在YouTube网站上工作。在游戏中,您应该能够自定义您的频道头像和横幅。所以,就像在真实的YouTube网站上一样,我创建了两个按钮,当点击它们时,打开一个OpenFileDialog
,其中播放器应该选择图像文件。唯一的问题是,您无法出于某种原因点击按钮。 以下是表单的内容:
这是我的代码:
#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 _
答案 0 :(得分:1)
您遇到的是当按钮的MouseEnter
事件尝试在AvatarBox的MouseLeave
事件试图隐藏它时同时显示按钮时发生的错误。
要修复它,您只需要检查MouseLeave
事件,如果鼠标仍然在控件的范围内。如果不是:隐藏按钮。
If AvatarBox.ClientRectangle.Contains(Me.PointToClient(Cursor.Position)) = False Then
AvatarEditButton.Visible = False
End If
逻辑适用于您的控件。