지정된 타이머 간격이 경과되고 타이머를 사용할 수 있을 때 발생한다.
도구상자에서 타이머를 끌어다 놓는다.
타이머를 선택하고 이벤트 아이콘을 클릭하여 Tick 이벤트를 더블 클릭한다.
this.timer1.Tick += new System.EventHandler(this.timer1_Tick); 코드가 자동으로 추가된다.
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Enabled = false;
listView_MyItem(listView1); // 타이머에서 동작시킬 사용자 함수
}
위의 굵은 글씨 부분을 보면 User가 직접 작성하는 코드를 어떻게 추가하는지를 알 수 있다.
마우스 휠 이벤트는 제공하지 않는데 마우스 휠 이벤트를 추가하는 방법은
this.listView1.MouseWheel += new MouseEventHandler(this.listView_MouseWheel); // 마우스 휠 이벤트
private void listView_MouseWheel(object sender, MouseEventArgs e)
{
listView_MyItem(listView1); // 사용자 함수
timer1.Enabled = true;
}
리턴타입은 void, 두개의 argument를 받는 데, 첫번째 인자는 object 타입, 두번째 인자는 EventArgs의 자식클래스이다.
필요에 따라 timer1.Interval = 5000; // 5초 단위
로 설정하면 된다. bool flag 와 같이 코딩할 수도 있다.
Designer.cs 파일에서 timer 찾기로 찾아보니
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
private System.Windows.Forms.Timer timer1;
이 3줄이 추가되어 있다.
다른 걸 좀 더 찾아보니
this.listView1.MouseClick += new System.Windows.Forms.MouseEventHandler(this.listView1_MouseClick);
이렇게 추가되어 있다. 마우스 휠 이벤트도 정확하게는
this.listView1.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.listView_MouseWheel); 로 적어주는게 맞는가 보다.
http://www.csharpstudy.com/CSharp/CSharp-event.aspx 에 보면 이벤트 핸들러 설명이 잘 되어 있다.
제공하는 이벤트가 아니라 직접 타이머를 만들어서 사용할 때를 알아보자.
System.Windows.Forms.Timer mytimer = new System.Windows.Forms.Timer();
는 전역변수 선언공간에 선언한다.
원하는 함수내에
mytimer.Interval = 100;
mytimer.Tick += new EventHandler(timer_tick);
mytimer.Start();
void timer_tick(object sender, System.EventArgs e)
{
수행할 작업
mytimer.Stop();
}
'C# > 문법 및 기능' 카테고리의 다른 글
C# HttpWebRequest 를 이용한 POST 전송하기 (0) | 2015.11.13 |
---|---|
C# URL 경로 링크 (0) | 2015.11.10 |
C# 밀리초 단위를 받아서 시/ 분/초 단위로 표시 (0) | 2015.10.18 |
C# 몫과 나머지 구하기 (0) | 2015.10.17 |
C# 문자열 다루기 StringBuilder (2) | 2015.10.10 |