C#

2. C# 윈도우 프로그램 만들기 - 로드,포커스인, 아웃

지니 2017. 1. 28. 02:03
반응형


인터넷강의 보고 따라하지만.. 강의 내용대로 안되서 다시 정리해 봅니다.


배우면서 쓰는글이기 때문에 정답이 아닐수 있습니다.




1. Ctrl + Shift + N 으로 창을 띄우고




윈도우 폼 어플리케이션을 선택합니다.






그러면 위 와같이 화면이 보일겁니다.

- 만약 안보인다면 위에 메뉴중 view  에서 메뉴를 추가하면 됩니다!



1번 이라고 써져있는 Form1 을 클릭해보면 오른쪽 아래의 properties 에 Form 속성을 제어할 수 있는 여러가지 속성이 노출됩니다. 



2. 1번을 더블클릭! 해봅니다.


그러면 


======================================================


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 WindowsFormsApplication1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }


        private void Form1_Load(object sender, EventArgs e)

        {


        }

    }

}




======================================================


이렇게 기본 프로그램이 나올겁니다.


사실 더블 클릭이 아닌  Solution Explorer 에서 Form1 을 클릭해서 왔다면 위의  빨간 글씨 부분인 Form1_Load 는 추가되어있지 않았을 겁니다.







 Form1_Load  는 뭘 의미 할까..??  

아마, 폼이 로드될때 실행되는 함수 아닐까?? 싶을겁니다.


가장 확실히 아는 방법은 그냥 해보는게 최고인거같습니다!


======================================================


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 WindowsFormsApplication1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }


        private void Form1_Load(object sender, EventArgs e)

        {

Text = DateTime.Now.ToString();    // 폼의 최상단에 현재 시간을 노출!

        }

    }

}




======================================================


Text = DateTime.Now.ToString();


이 한줄이 추가되었죠?? 주석처럼 저런 기능이 있답니다.


위에 프로그램을 넣고 F5를 누르고 실행해보면~~





이렇게 시간이 노출된답니다!




자, 여기서 추가로! 


위에까지는 로드 되었을때고, 로드는 진작되었고, 포커스 인, 포커스 아웃 되었을때 이벤트를 주고싶다!

기타등등등등등~~이 있겟죵??


======================================================

public Form1()

        {

            InitializeComponent();

            this.GotFocus += new EventHandler(Sub_GotFocus);   //GotFocus  되었을때 이벤트 핸들러 Sub_GotFocus 함수를 실행하라~

            this.LostFocus += new EventHandler(Sub_LostFocus);  //LostFocus 되었을때 이벤트 핸들러 Sub_LostFocus함수를 실행하라~

        }



 private void Sub_GotFocus(object sender, EventArgs e)

        {

            //MessageBox.Show("'" + this.Text + "' got focus");

            Text = DateTime.Now.ToString();

        }


        private void Sub_LostFocus(object sender, EventArgs e)

        {

Text = DateTime.Now.ToString();

            //MessageBox.Show("'" + this.Text + "' lost focus");

        }



======================================================



붉은 글씨가 추가된 내용이구요!  주석처럼 되어있습니다.


참고로 , 녹색글씨 

//MessageBox.Show("'" + this.Text + "' lost focus");


이거는 알림창이 떠요! 궁굼하시면 한번 넣어보세용 ㅎㅎㅎ



이번글은 여기까지!!


반응형