목표
윈도우 폼(WinForms)을 사용하여 간단한 로그인 창을 구현하고, 사용자 인증 기능을 통해 로그인 성공/실패 여부를 확인하는 윈도우 프로그램을 만듭니다.
사용 기술
개발 환경
로그인 창
사용자 ID와 비밀번호를 입력받는 텍스트 박스와 로그인 버튼으로 구성됩니다.
사용자 인증
로그인 버튼 클릭 시, 미리 설정된 ID와 비밀번호를 기반으로 사용자 인증을 수행합니다.
로그인 성공/실패 메시지
입력된 ID와 비밀번호가 미리 설정된 값과 일치하는지 확인하여 로그인 성공 여부를 메시지 박스로 알려줍니다.
로그인 성공 시 "로그인에 성공했습니다." 메시지 박스를 표시하고, 실패 시 "로그인에 실패했습니다." 메시지 박스를 표시합니다.
실행 화면

userId와 userPassword 변수에 저장된 값을 미리 입력해둔 값과 비교하는 데 어려움을 겪었습니다. string 클래스의 Equals() 메서드를 사용하여 문자열을 비교하는 방법을 찾아 적용했습니다.SignInButton_Click 메서드에 코드를 작성했습니다.id.Text와 password.Text를 사용하여 텍스트 박스에서 입력된 값을 가져왔습니다.Equals() 메서드를 사용하여 문자열을 비교했습니다. Windows Forms 기반의 간단한 로그인 창을 구현하여 C# 기본 문법과 윈도우 폼 컨트롤 활용 능력을 익히고, 로그인 기능을 통해 사용자 인증 과정을 이해하였습니다.
Windows Forms 컨트롤 활용: 텍스트 박스, 버튼, 레이블 등 윈도우 폼 컨트롤의 속성과 이벤트를 이해하고, 이를 활용하여 UI를 구성할 수 있게 되었습니다.
이벤트 처리: 컨트롤에서 발생하는 이벤트를 처리하는 방법을 익히고, 이벤트 핸들러를 작성하여 사용자 상호 작용에 따라 프로그램이 동작하도록 구현할 수 있게 되었습니다.
조건문과 메서드 활용: if 문을 사용하여 조건에 따라 다른 코드를 실행하는 방법과 Equals() 메서드를 사용하여 문자열을 비교하는 방법을 익혔습니다. 또한 MessageBox.Show() 메서드를 사용하여 로그인 성공 여부를 알리는 메시지 박스를 표시했습니다.
레이블(Label)
텍스트박스(TextBox)
텍스트박스는 사용자 입력을 받을 수 있는 컨트롤입니다.
로그인 창에서 아이디와 비밀번호를 입력할 텍스트박스(TextBox)를 도구 상자에서 가져옵니다.
속성창에서 텍스트박스의 (Name) 항목의 값을 id로 변경합니다. (Name) 항목의 값은 추후 코드에서 변수명으로 사용됩니다. id라는 변수명을 통해 사용자가 입력한 아이디를 가져올 것입니다.
복사한 텍스트박스의 (Name) 속성값을 password로 변경합니다.
버튼(Button)
도구 상자에서 사용자 아이디와 비밀번호를 검증할 버튼(Button) 컨트롤을 가져와 폼에 배치합니다.
C# 코드에서 버튼을 제어하기 위한 이름을 변경할 수 있는데, 버튼 컨트롤을 선택해 (Name) 속성값을 "SignInButton"으로 변경합니다.
버튼을 클릭할 때 발생하는 이벤트를 추가하기 위해 속성창 메뉴 중 번개 모양 아이콘을 클릭해 Click 이벤트를 마우스 더블클릭.
SignInButton_Click 메서드
입력값 가져오기
using System;
using System.Windows.Forms;
namespace WindowsSignIn
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void SignInButton_Click(object sender, EventArgs e)
{
string userId = id.Text;
string userPassword = password.Text;
if(userId.Equals("idvvvvo") && userPassword.Equals("111"))
{
MessageBox.Show("로그인에 성공했습니다.", "로그인");
}
else
{
MessageBox.Show("로그인에 실패했습니다.", "로그인");
}
}
}
}
Equals 메서드
string은 문자열을 저장할 수 있는 데이터 형이며, 문자열을 비교할 수 있는 Equals 메소드를 호출할 수 있습니다. 따라서 userId.Equals 메소드로 userId에 저장된 문자열과 비교해 일치하면 "참(True)"를 반환하고, 그렇지 않으면 "거짓(False)"을 반환합니다.
if 문을 사용하여 입력된 ID와 비밀번호가 미리 설정된 값과 일치하는지 확인합니다. 두 조건을 && 연산자로 묶어 아이디와 비밀번호가 모두 일치할 경우 참이되어 if문을 실행하도록 만듭니다. 둘 중 하나라도 거짓일 경우 else문을 실행합니다.
MessageBox
MessageBox 클래스는 사용자에게 메시지를 출력해 확인이나 선택, 취소 등을 결정할 수 있도록 알려주는 기능을 갖고있습니다.MessageBox의 Show 메소드를 호출하고 매개변수로 출력할 메시지와 타이틀을 입력하여 로그인에 성공했을 때와 실패했을 때 메시지 창을 띄워 사용자에게 결과를 알려줍니다. [확인] 버튼을 클릭하면, 메시지 창이 닫힙니다.실행 결과

비밀번호를 입력하면 어떤 문자를 입력했는지 화면에 그대로 보입니다.
텍스트박스(TextBox)의 속성을 변경하여 해결했습니다. 비밀번호를 입력하는 텍스트박스(TextBox)의 속성 중 PasswordChar 속성값에 특정한 문자를 입력하면 해당 문자로 대체됩니다. [*] 문자를 입력하여 문자의 수만큼 [*]을 출력하게 만듭니다.
실행 결과

실행 결과
