2014-06-08 3 views
1

C#의 Windows.Forms를 사용하여 .Net 응용 프로그램을 코딩하고 있습니다. 나는 그림 상자를 사용하여 점수 판 모방을하고있다. 계획은 원하는 너비에 도달 할 때까지 타이머 틱마다 2px의 너비를 정하는 것입니다. 그리고 그것은 문제입니다. 왜냐하면 타이머 틱이 어떤 picturebox의 너비를 증가시켜야 하는지를 어떻게 말할 지 모르기 때문입니다. 모든 그림 상자에 다른 방법을 사용하고 싶지 않습니다. 실제로 그렇게하는 것이 최적의 방법이라고 생각하지 않기 때문입니다.타이머 틱 이벤트의 인수 변경

그래서, 질문은 timer_tick 방법의 영향을 받아 지정된 pixturebox와 원하는 너비를 어떻게 설정할 수 있습니까? 나는이 시대의 가족의 폴란드어 버전의 보드 같은 것을하려고 노력하고

: https://www.youtube.com/watch?v=uL-y18ZkbcQ (3시 5분에서 시계)

+0

망가 지길 이미 무엇? – Fals

+0

나는 한 덩어리의 물건을 가지고있다. 나는 퀴즈를 만들고있다. 나는 점수 판에 답을 표시하기를 원한다. 그래서 나는 대답과 점수 (약 14 장의 그림 상자)에 대해 pb를 갖고 싶다. 타이머를 사용하여 애니메이션을 적용하지만 타이머 틱 이벤트가 영향을 미칠 픽처 박스를 결정하고 싶습니다. – Nidrax

답변

4

그냥 타이머와 그림 상자를 추적하기 위해 작은 헬퍼 클래스를 작성. 그것은 다음과 같이 수 :

이제
class Animator : IDisposable { 
     private Timer timer; 
     private PictureBox pbox; 
     private int maxSize; 
     public Animator(PictureBox box, int size) { 
      pbox = box; 
      maxSize = size; 
      timer = new Timer() { Interval = 45, Enabled = true }; 
      timer.Tick += animate; 
     } 
     private void animate(object sender, EventArgs e) { 
      if (pbox.IsDisposed || pbox.Width >= maxSize) Dispose(); 
      else pbox.Width += Math.Min(2, maxSize - pbox.Width); 
     } 
     public void Dispose() { timer.Dispose(); } 
    } 

당신이 당신의 폼 클래스의 간단한 문을 원하는만큼을 만들 수 있습니다

new Animator(pictureBox1, 50); 
+0

고마워, 내가 필요한 것 :) – Nidrax

관련 문제