반응형

데브피아에서 어떤분이 제목과 같은 기능 구현에 대해서 물어오길래.

여러가지 방법이 있을 수 있겠지만.. 다음과 같이 구현해봤습니다.

 

Timer를 2개 선언합니다. 여기서는 Timer1, Timer2로 하겠습니다.

직접 선언하면 귀찮으니까 도구상자를 이용하세요. 그리고 Tick 이벤트에 대해서 이벤트 핸들러를 등록합니다.

 

마지막으로 Image의 객체를 하나 선언합니다.

 

 

1. 깜빡이는 효과를 주기 원하는 시점에서 첫번째 타이머를 시작하고, 픽처박스에 이미지를 올립니다.

 

2. 첫번째 타이머의 이벤트 핸들러에서 이미지를 위에 선언한 Image객체에 저장합니다.

 

3. 픽처박스의 Image속성을 null로 지정합니다. (그림이 안보이게 됩니다.)

 

3. 두번째 타이머를 시작합니다.

 

4. 두번째 타이머의 이벤트 핸들러에서 저장했던 Image객체를 픽처박스에 다시 올립고, 두번째 타이머를 멈춥니다.

 

이렇게 했을 때, 첫번째 타이머와 두번째 타이머의 인터벌만 잘 조절해주면 그럴싸하게 깜빡이는 효과를 줄 수 있습니다.

 

 

아래는 3초마다 0.3초 간격으로 깜빡이는 효과를 주는 소스입니다.

 

        private Image img = null;

 

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Interval = 3000;
            timer1.Start();
        }

 

        private void timer1_Tick(object sender, EventArgs e)
        {
            img = pictureBox1.Image;
            pictureBox1.Image = null;

 

            timer2.Interval = 300;
            timer2.Start();
        }

 

        private void timer2_Tick(object sender, EventArgs e)
        {
            pictureBox1.Image = img;
            timer2.Stop();
        }

반응형

+ Recent posts