본문으로 바로가기
반응형

윈폼 MouseLeave, MouseMove, DoubleClick이벤트 사용해보기

도구상자에서 버튼하나를 생성해주자.

버튼의 속성값 설정

using System.Windows.Forms;
namespace _20200818_007WinForm1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, System.EventArgs e)
        {
            this.Text = "버튼 눌러지면 이 글이 뜬다.";
        }
    }
}

실행해서 버튼을 클릭해주면 ""안에 적어둔 Text가 뜨는 것을 볼 수 있을 것이다.

 

 

 

더블클릭을 했을때 추가되는 이벤트를 작성해보자.

Form1과 버튼의 속성을 변경

using System.Windows.Forms;
namespace _20200818_007WinForm1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_DoubleClick(object sender, System.EventArgs e)
        {
            FactBtn.Text = "더블 클릭 했구나?";
        }
    }
}

창 안에서 버튼말고 다른 곳을 클릭하면 버튼의 Text가 바뀌는 것을 볼 수 있다

 

 

 

윈폼 코드안에서 메서드안에 변수랑 if문을 추가해보자.

using System.Windows.Forms;
namespace _20200818_007WinForm1
{
    public partial class Form1 : Form
    {
        bool bButton = false; // 더블클릭 이벤트에 추가해줄 변수(false를 가지고있다)
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_DoubleClick(object sender, System.EventArgs e)
        {
        // 더블클릭하면 false, true가 바뀌면서 출력값이 바뀐다.
            if (bButton == false) 
            { 
                FactBtn.Text = "더블 클릭 했구나?";
                bButton = true;
            }
            else
            {
                FactBtn.Text = "헬로키티는 천국못가나?";
                bButton = false;
            }
        }
    }
}

처음화면
더블클릭하면 두개의 화면이 왔다갔다하는 것을 볼 수 있다

 

 

 

 

마우스를 갖다대거나 떼면 발생하는 이벤트를 작성해보자.

버튼, 메인 폼의 이벤트를 추가해주자

using System.Windows.Forms;
namespace _20200818_007WinForm1
{
    public partial class Form1 : Form
    {
        bool bButton = false;
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_DoubleClick(object sender, System.EventArgs e)
        {
            if (bButton == false) 
            { 
                FactBtn.Text = "더블 클릭 했구나?";
                bButton = true;
            }
            else
            {
                FactBtn.Text = "또 더블 클릭했구나?";
                bButton = false;
            }
        }

        private void Form1_MouseMove(object sender, MouseEventArgs e)
        {
            Text = "마우스 올라오면 이 글이 보인다";
        }

        private void Form1_MouseLeave(object sender, System.EventArgs e)
        {
            Text = "마우스를 떠나보내면 이 글이 보인다";
        }

        private void FactBtn_MouseMove(object sender, MouseEventArgs e)
        {
            FactBtn.Text = "버튼에 마우스 갖다대면 이 글이 보인다.";
        }

        private void FactBtn_MouseLeave(object sender, System.EventArgs e)
        {
            FactBtn.Text = "버튼에 마우스를 떼면 이 글이 보인다.";
        }
    }
}

버튼, 버튼밖, 창, 창밖 등등에따라 글귀가 바뀌는 것을 볼 수 있다.

 

 

 

 

 

텍스트 박스에서 엔터를치면 버튼의 글자가 바뀌는 이벤트를 짜보자.

텍스트박스를 두개를 생성해주자.

위에가 텍스트박스1, 밑에가 텍스트박스2 이다

이벤트를 KeyCode로 해줘야하는데, 이걸로 키를 특별하게 설정을해줘야 일반 키를 눌러도 이벤트가 발생하지 않는다.

 

 

// 텍스트박스1에 글자를 입력하고 엔터를 누르면 발생하는 이벤트
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if(e.KeyCode == Keys.Enter)
            {
               FactBtn.Text = textBox1.Text; // FactBtn.Text가 textBox1.text에 대입된다. -> 텍스트박스의 글자가 버튼 글자가 된다.
            }
        }

텍스트박스1에 입력하고 엔터를 눌러주면 버튼에 출력된다

 

 

텍스트 박스1에 입력해서 엔터를 누르면 텍스트박스2에 출력되도록 해보자.

        // 텍스트박스1에 글자를 입력하고 엔터를 누르면 텍스트박스2에 출력되는 이벤트
        private void textBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                textBox2.Text = textBox1.Text; 
// textBox1.Text가 textBox2.text에 대입된다. -> 텍스트박스1의 글자가 텍스트박스2의 글자가 된다.
            }
        }

텍스트박스1에 입력하고 엔터를 누르면 텍스트박스2에 출력된다

 

 

텍스트박스1에 입력하고 버튼을 클릭하면 텍스트박스2에 출력되는 이벤트도 만들어보자.

        //버튼을 클릭하면 텍스트박스1의 글자가 텍스트박스2에 입력되는 이벤트
        private void FactBtn_Click(object sender, System.EventArgs e)
        {
            textBox2.Text = textBox1.Text;
        }

텍스트박스1에 입력하고 버튼을 클릭하면 텍스트박스2에 출력된다

 

반응형