我输入了
行Private Sub tmrAnalogueCounter_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrAnalogueCounter.Tick
AnalogCounter += 1
If AnalogCounter >= 17 Then
tmrAnalogueCounter.Enabled = False
End If
pboTimer.Image = My.Resources.ResourceManager("Timer" & AnalogCounter)
End Sub
不幸的是,我收到错误“Class'System.Resources.ResourceManager'无法编入索引,因为它没有默认属性。
我不明白为什么,“pboTimer.Image = My.ResourceManager(”Timer“& AnalogCounter)”已更换
Select Case AnalogCounter
Case 1 : pboTimer.Image = My.Resources.Timer1
Case 2 : pboTimer.Image = My.Resources.Timer2
Case 3 : pboTimer.Image = My.Resources.Timer3
Case 4 : pboTimer.Image = My.Resources.Timer4
Case 5 : pboTimer.Image = My.Resources.Timer5
Case 6 : pboTimer.Image = My.Resources.Timer6
Case 7 : pboTimer.Image = My.Resources.Timer7
Case 8 : pboTimer.Image = My.Resources.Timer8
Case 9 : pboTimer.Image = My.Resources.Timer9
Case 10 : pboTimer.Image = My.Resources.Timer10
Case 11 : pboTimer.Image = My.Resources.Timer11
Case 12 : pboTimer.Image = My.Resources.Timer12
Case 13 : pboTimer.Image = My.Resources.Timer13
Case 14 : pboTimer.Image = My.Resources.Timer14
Case 15 : pboTimer.Image = My.Resources.Timer15
Case 16 : pboTimer.Image = My.Resources.Timer16
Case 17 : pboTimer.Image = My.Resources.Timer17
Case Else : tmrAnalogueCounter.Enabled = False
End Select
知道怎么解决吗?
答案 0 :(得分:2)
您收到此错误,因为ResourceManager上没有定义默认属性。来自Default Properties:
默认属性是Visual Basic在no时使用的属性 已为对象命名特定属性。默认属性很有用,因为它们允许您通过省略常用属性名来使源代码更紧凑。
由于没有定义默认属性,您必须显式调用该属性以返回所需的值。在这种情况下,它将是:
pboTimer.Image = My.Resources.ResourceManager.GetObject("Timer" & AnalogCounter)
您可能还必须明确地将返回的对象转换为图像:
pboTimer.Image = CType(My.Resources.ResourceManager.GetObject("Timer" & AnalogCounter), System.Drawing.Image)
Or
pboTimer.Image = CType(My.Resources.ResourceManager.GetObject("Timer" & AnalogCounter), System.Drawing.Bitmap)