이번 포스팅에서는 로그인창을 만드는 예제를 구현해 보겠습니다.
폼 디자인
컨트롤들을 다음과 같이 배치합니다. 이때 필요한 컨트롤들은 Label, TextBox, Button 컨트롤입니다.
속성은 다음과 같이 설정합니다.
// 컨트롤 속성 설정
// 1. Form
// - Text : Login
// 2. Label
// - Text : ID
// - TabIndex : 0
// 3. TextBox
// - (Name) : txtID
// - TabIndex : 1
// 4. Label
// - Text : Password
// - TabIndex : 2
// 5. TextBox
// - (Name) : txtPW
// - TabIndex : 3
// - PasswordChar : *
// 6. Button
// - Text : 로그인
// - TabIndex : 4
Form1.cs 작성하기
로그인 버튼을 더블클릭하여 이벤트 함수를 생성하고. 이벤트 함수 내용을 아래와 같이 작성합니다.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WinFormExam
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Shown += form_shown;
}
private void form_shown(object sender, EventArgs e)
{
txtID.Focus();
}
private void btnLogin_Click(object sender, EventArgs e)
{
if (txtID.Text == "asdf" && txtPW.Text == "1234")
{
MessageBox.Show("로그인 성공!!");
}
else
{
MessageBox.Show("ID 또는 비밀번호가 틀립니다.");
}
}
}
}
위 예제에서 form_shown() 함수는 TextBox에 포커스를 설정하기 위해서 새로 등록한 이벤트 함수입니다. 포커스 같은 경우 폼의 렌더링이 끝나고 난 뒤에 적용되므로 다음과 같이 폼로드 이벤트 함수에 작성하면 제대로 동작하지 않습니다.
private void Form1_Load(object sender, EventArgs e)
{
txtID.Focus(); // 제대로 동작하지 않음
}
따라서 Shown += form_shown과 같이 폼의 렌더링이 끝난 Shown 이벤트 함수에 작성해야 합니다. 사실 TabIndex에 의하여 자동으로 첫 번째 TextBox에 포커스가 맞춰져 있어서 Shown 이벤트 함수를 등록할 필요는 없습니다. 하지만 임의로 변경이 필요할 때를 위하여 사용법을 알아두는 것이 좋습니다.
실행 결과
위 코드를 실행하고 ID와 Pasword 입력을 테스트하면 다음과 같이 나타납니다.
'Program Language > C#(GUI)' 카테고리의 다른 글
[C# Winform] ScrollBar와 TextBox로 RGBA 컬러 조절하기 (12) | 2023.08.04 |
---|---|
[C# Winform] 성적 계산기 만들기 (11) | 2023.07.28 |
[C# WinForm] RadioButton 사용하기 (11) | 2023.03.03 |
[C# WinForm] CheckBox 사용하기 (11) | 2023.02.20 |
[C# WinForm] TextBox / Label / Button Control (16) | 2023.02.14 |
댓글