2011-08-20 8 views
1

나는 선 불행하게도"어떤 기본 속성"

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 

에 입력 한, 나는 그것을 기본 속성이 없기 때문에 오류 "클래스 'System.Resources.ResourceManager은'인덱싱 할 수 없습니다 받고 없습니다 있어요.

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 

를 해결하는 방법에 어떤 생각을 교체하는 이유, "pboTimer.Image = My.ResourceManager ("타이머 "& AnalogCounter)"나는 이해가 안 돼요?

답변

2

ResourceManager에 정의 된 기본 속성이 없기 때문에이 오류가 발생합니다. Default Properties에서 :

기본 속성은 더 특정 속성이 객체의 이름을 딴되어 있지 않은 경우 Visual Basic의이 사용하는 속성입니다. 기본 속성은 자주 사용되는 속성 이름을 생략하여 소스 코드를 더 간단하게 만들 수 있으므로 유용합니다.

기본 속성이 정의되지 않았으므로 속성을 명시 적으로 호출하여 원하는 값을 반환해야합니다. 이 경우는 다음과 같습니다

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) 
+0

감사합니다! 완벽하게 작동합니다 : D – DVDV28

관련 문제