반응형
flag를 이용한 이벤트 처리
버튼을 클릭하면 Click 이벤트가 발생하고, 이를 처리하는 이벤트 처리 메서드가 실행된다. 그런데 똑같은 버튼을 클릭할 때 실행할 내용이 다르면 어떻게 해야할까? 예를들어, 버튼 한번을 클릭하면 "Hello World!"라고 출력하고 또 한번 누르면 글이 없어지게 하고 싶으면 어떻게 해야할까?
이럴 때 flag 필드를 사용하면되는데, bool형 변수 flag를 Form1 클래스에 필드로 선언하고 flag 값이 true일때와 false일때 동작을 다르게 처리한다. flag필드는 한번 사용 후에는 반대값으로 바꿔준다.
같은 버튼을 클릭했을 때 다른 동작을 하는 이벤트를 작성해보자.
label, 버튼을 생성해주고, 버튼의 Text를 수정해주자.
플래그 필드 bool flag를 선언하고, 필드는 디폴트 값이 할당된다.
using System;
using System.Windows.Forms;
namespace _20200819_004
{
public partial class Form1 : Form
{
public bool flag; // 디폴트는 false
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if(flag == false)
{
label1.Text = "Hello World!";
flag = true;
}
else
{
label1.Text = "";
flag = false;
}
}
}
}
버튼을 클릭할 때 실행되는 메서드이며, flag가 false이면 label에 "Hello World!"라고 출력하고 flag를 true로 바꿔준다. 다시 버튼이 클릭되면 flag가 true로 바뀌어 있으므로 label의 글씨를 없애고 flag를 false로 바꿔둔다.
반응형
'개발자과정준비 > WinForm' 카테고리의 다른 글
[Winform] 윈폼 복습 7. 로그인 창 만들기 (0) | 2020.08.25 |
---|---|
[Winform] 윈폼 복습 6. 체크박스, 라디오버튼, 그룹박스 (0) | 2020.08.25 |
[Winform] 윈폼 복습 4. 텍스트박스, 레이블, 버튼 컨트롤 (0) | 2020.08.22 |
[Winform] 윈폼 복습 3. Form 클래스와 두 개의 폼 띄우기 (1) | 2020.08.21 |
[Winform] 윈폼 복습 2. MouseLeave, MouseMove, DoubleClick 이벤트 (0) | 2020.08.20 |