본문으로 바로가기

C# 윈폼 중복실행 방지(간단한 방법..)

category C# 2019. 9. 11. 14:12
반응형

안녕하세요 이 방법은 제가 생각한 방법이고.. 어떻게 보면 간단하고 무식한 방법일 수도 있습니다.

그냥 참고로만 알아두시고 더 좋은 방법이 많이 있을테니 그거 쓰시는게 나으실겁니당..

저는 그냥 간단한 방법으로..음 그냥 한거에요 

 

 

1. 우선 전역변수 하나를 만듭니다. 저는 쓰이는 변수들을 하나의 Static 클래스 안에 담아뒀기 때문에 

   Static 변수를 사용하고 있습니다.

1
2
3
4
public static class StaticClass
{
   public static int Count = 0;
}
 

 

2. 전역변수 초기 값이 0이기 때문에 IF문 실행 

   실행 후 마지막에 Count = 1 로 증가 // 

   Count가 1일땐 조건문이 실행 X

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 private void Inv_Set_Click(object sender, EventArgs e)
        {
          
            if(sender == Inv_Set)
            {
                if (StaticClass.Count == 0)
                {
                    actFrm = new TestForm();
                    //부모폼 안에서 폼 띄우겠다는 의미
                    actFrm.MdiParent = this;
                    actFrm.Show();
                    //폼을 한번 띄우면 카운트 1 증가
                    //1이 증가하면 현재 IF 문이 실행x
                    StaticClass.Count = 1;
                }
            }
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
 

 

3. TestForm 속성부분에 FormClosing 더블클릭 시 Close 이벤트 함수 자동생성

 

4. 폼을 닫으면 Count = 0 으로 초기화

1
2
3
4
private void TestForm_FormClosing(object sender, FormClosingEventArgs e)
{
}
 
 

 

정리

하나의 변수를 이용하여 값이 0일 때만 폼이 실행되는 조건을 만들고,

카운트를 증가시켜 만들어진 조건문이 실행되지 않도록 한다.

그 다음 폼을 닫았을 때 카운트 값을 다시 0으로 초기화 시켜 조건문이 실행되도록 만든다. 

 

반응형