본문 바로가기

C# 개인 공부 기록용/개인 실습

Login Form(Feat. Button)

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 HomeWork_1
{
    public partial class Login_Form : Form
    {
        string id;
        string pw;
        int view_number;

        public Login_Form()
        {
            InitializeComponent();
        }

        private void Login_Form_Load(object sender, EventArgs e)
        {
            this.ActiveControl = Tb_Id; // 폼 로드시 커서 바로 가게 하기

            Tb_Id.MaxLength = 4; // 키보드 값만 적용됨
            Tb_Pw.MaxLength = 4; // 키보드 값만 적용됨

            // 이번 핵심 기능
            Btn_Number_0.Click += new EventHandler(Btn_Number_Click);
            Btn_Number_1.Click += new EventHandler(Btn_Number_Click);
            Btn_Number_2.Click += new EventHandler(Btn_Number_Click);
            Btn_Number_3.Click += new EventHandler(Btn_Number_Click);
            Btn_Number_4.Click += new EventHandler(Btn_Number_Click);
            Btn_Number_5.Click += new EventHandler(Btn_Number_Click);
            Btn_Number_6.Click += new EventHandler(Btn_Number_Click);
            Btn_Number_7.Click += new EventHandler(Btn_Number_Click);
            Btn_Number_8.Click += new EventHandler(Btn_Number_Click);
            Btn_Number_9.Click += new EventHandler(Btn_Number_Click);
            Btn_BackSpace.Click += new EventHandler(Btn_Number_Click);
            Btn_Correction.Click += new EventHandler(Btn_Number_Click);
        }

        private void Btn_Number_Click(object sender, EventArgs e)
        {
            Button btn = sender as Button;
            string btn_values = btn.Text;

            switch (btn_values)
            {
                case "0":
                case "1":
                case "2":
                case "3":
                case "4":
                case "5":
                case "6":
                case "7":
                case "8":
                case "9":

                    // 키보드 값만 먹히는 MaxLength의 기능을 구현
                    if (Tb_Pw.TextLength >= 4)
                    {
                        return;
                    }

                    if (Tb_Id.Text.Length <= 3)
                    {
                        Tb_Id.Text += btn_values;
                        Tb_Id.Select(Tb_Id.Text.Length, 0);
                    }
                    else if (!(Tb_Id.Text.Length <= 3))
                    {
                        Tb_Pw.Select();
                        Tb_Pw.Text += btn_values;
                        Tb_Pw.Select(Tb_Pw.Text.Length, 0);
                    }
                    break;

                case "BackSpace":

                    if (Tb_Pw.Text == string.Empty)
                    {
                        Tb_Id.Focus();

                        if (Tb_Id.Text == string.Empty)
                        {
                            return;
                        }

                        Tb_Id.Text = Tb_Id.Text.Remove(Tb_Id.TextLength - 1, 1); // 삭제 기능
                        Tb_Id.Select(Tb_Id.Text.Length, 0);
                    }

                    if (Tb_Pw.Text.Length >= 1)
                    {
                        Tb_Pw.Focus();
                        Tb_Pw.Text = Tb_Pw.Text.Remove(Tb_Pw.TextLength - 1, 1); // 삭제 기능

                        // Tb_Pw에 텍스트가 없을 시 바로 Tb_Id로 포커스가 가는 기능
                        if (Tb_Pw.Text == string.Empty)
                        {
                            Tb_Id.Focus();
                            return;
                        }

                        Tb_Pw.Select(Tb_Pw.Text.Length, 0);
                    }
                    break;

                case "정 정":
                    Tb_Id.Clear();
                    Tb_Pw.Clear();
                    Tb_Id.Focus();
                    break;
            }
        }

        private void Btn_Login_Click(object sender, EventArgs e)
        {
            id = Tb_Id.Text;
            pw = Tb_Pw.Text;

            if (id.Equals("1000") && pw.Equals("1234"))
            {
                view_number = 1;
                this.Visible = false;
                View_Form frm = new View_Form();
                frm.view_bool = view_number;
                frm.Owner = this;
                frm.Show();
            }
            else if (id.Equals("1001") && pw.Equals("1234"))
            {
                view_number = 2;
                this.Visible = false;
                View_Form frm = new View_Form();
                frm.view_bool = view_number;
                frm.Owner = this;
                frm.Show();
            }
            else if (id.Equals("5004"))
            {
                view_number = 3;
                this.Visible = false;
                View_Form frm = new View_Form();
                frm.view_bool = view_number;
                frm.Owner = this;
                frm.Show();
            }
            else
            {
                MessageBox.Show("아이디 또는 비밀번호가 일치하지 않습니다.");
                return;
            }
        }

        private void Tb_Id_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Tb_Id.Text.Length >= 4)
            {
                Tb_Pw.Enabled = true;
                Tb_Pw.Focus();
            }
        }

        private void Tb_Pw_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Tb_Pw.Text.Length >= 4)
            {
                
            }
        }
    }
}
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 HomeWork_1
{
    public partial class View_Form : Form
    {
        protected internal int view_bool;

        public View_Form()
        {
            InitializeComponent();
        }

        private void View_Form_Load(object sender, EventArgs e)
        {
            if (view_bool == 1 || view_bool ==2)
            {
                Btn_View.Enabled = false;
                Btn_View.Text = "비활성화";
            }
            else if(view_bool == 3)
            {
                Btn_View.Enabled = true;
                Btn_View.Text = "활성화";
                Btn_View.ForeColor = Color.Red;
            }
        }

        private void Btn_Back_Click(object sender, EventArgs e)
        {
            this.Visible = false;
            Login_Form frm = new Login_Form();
            frm.Owner = this;
            frm.Show();
        }
    }
}