반응형
프로그램 구동 시 MainForm 에서 LoginForm 을 호출하여 Login 성공 시 Main Form을 보여주는 간단한 예제입니다.
Process
최초 프로그램이 구동 될 때는 MainForm() 를 호출합니다.
MainForm Load 시 LoginForm 을 Modal로 구동합니다. (부모: MainForm , 자식:LoginForm)
DialogResult를 통해 로그인 창을 닫을 경우 프로그램을 종료합니다.
# MainForm
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e)
{
LoginForm loginForm = new LoginForm();
// LoginForm DialogResult Value
DialogResult Result = loginForm.ShowDialog();
// is not login success
if (Result != DialogResult.OK)
{
MessageBox.Show("프로그램 종료");
this.Close();
}
else
{
//MessageBox.Show("성공");
}
}
}
DialogResult Result = loginForm.ShowDialog(); 로 자식폼 LoginForm을 실행합니다.
LoginForm 의 종료 결과를 받아서 OK 가 아니라면 MainForm 도 종료합니다.
만약 LoginForm에서 로그인을 하지 않고 Form을 종료한다면 결과는 OK가 아닌 Cancle 가 됩니다.
반응형
# LoginForm
public partial class LoginForm : Form
{
public LoginForm()
{
InitializeComponent();
}
private void textPW_KeyDown(object sender, KeyEventArgs e)
{
// PW 에 Enter Key가 입력되면 btnLogin_Click 을 호출
if(e.KeyCode == Keys.Enter)
{
btnLogin_Click(sender, e);
btnLogin.Select();
}
}
private void btnLogin_Click(object sender, EventArgs e)
{
string ID = textID.Text;
string PW = textPW.Text;
if (EmptyCheck())
{
// test 용도이며 추후 LoginCheck 관련 Program 추가 예정
if (ID == "admin" && PW == "qwe123")
{
// Login Success 시 DialogResult.OK 후 Form close
this.DialogResult = DialogResult.OK;
this.Close();
}
else
{
labelMsg.Text = "죄송합니다. 사용자명과 비밀번호가 올바르지 않습니다.";
}
}
}
// ID, PW 빈 값 처리
private bool EmptyCheck()
{
if (String.IsNullOrEmpty(textID.Text))
{
labelMsg.Text = "사용자명을 입력해 주세요";
textID.Focus();
return false;
}
else if (String.IsNullOrEmpty(textPW.Text))
{
labelMsg.Text = "비밀번호를 입력해 주세요";
textPW.Focus();
return false;
}
return true;
}
}
PW textbox 에 Enter 가 입력되면 로그인 버튼 클릭 이벤트를 호출합니다.
private void textPW_KeyDown(object sender, KeyEventArgs e)
{
// PW 에 Enter Key가 입력되면 btnLogin_Click 을 호출
if(e.KeyCode == Keys.Enter)
{
btnLogin_Click(sender, e);
btnLogin.Select();
}
}
로그인 버튼 클릭 시 ID 및 PW에 값이 없다면 화면에 에러메시지를 표시합니다.
로그인이 성공하면 DialogResult 결과가 DialogResult.OK 됩니다.
if (ID == "admin" && PW == "qwe123")
{
// Login Success 시 DialogResult.OK 후 Form close
this.DialogResult = DialogResult.OK;
this.Close();
}
반응형
댓글