使用字符串变量作为资源的成员

时间:2013-07-03 20:42:20

标签: windows vb.net member

我有以下代码:

Private Sub HomeButtonHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAddClass.MouseEnter, BtnEditClass.MouseEnter, BtnViewClass.MouseEnter
    Dim Name As String = sender.Image & "Hover"
    sender.Image = My.Resources.Name
End Sub

例如,在我的资源中,我有。 BtnAddClass.png和BtnAddClassHover.png

我希望将“悬停”附加到发件人姓名的末尾,然后检索图像的正确资源。选择案例不起作用,因为我有很多按钮,我在示例中只包含3个。

2 个答案:

答案 0 :(得分:0)

有很多方法,但这是一种简单的方法:

Dim Name As String = sender.Image
Name = Name.Replace(".png", "Hover.png")

然后你不能使用My.Resources.Name,它可能是:

My.Resources.ResourceManager.GetObject(Name)

但是(资源的)对象名称不包含扩展名“png”,因此您可能需要:

Name = Name.Replace(".png", "Hover")
sender.Image = My.Resources.ResourceManager.GetObject(Name)

答案 1 :(得分:0)

这样做..

Private Sub HomeButtonHover(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAddClass.MouseEnter, BtnEditClass.MouseEnter, BtnViewClass.MouseEnter
    Dim btn As Button = CType(Sender,Button)
    Dim Name As String = btn.Image.ToString & "Hover"
    btn.Image = My.Resources.ResourceManager.GetObject(Name)
End Sub