좋은질문

C# public form과 private form_load의 질문입니다.

JustineBaek 2014. 9. 5. 01:43

 

 

 

 

c#은 맨 처음 실행하면

 

public form이 하나 만들어져 있잖아요

 

InitializeComponent(); 이 내용을 가지구서요

 

public form과 form_load간의 하는 일에 대해서 궁금합니다. 그 차이점도요

 

 

public form(){

InitializeComponent();

 

창 전체화면 ;

}

전체 화면은 되대 0,0의 위치에서 화면이 시작하지 않더군요

 

그래서

private form_load(){

창 전체화면 ;

}

여기에다가 전체화면 해주는 녀석을 적어주니가

화면상의 0,0 위치에서 잘 실행이 되더라구요

 

form 과 form_load 간의 차이 때문에 그런 것인가요??

 

 

 

 

 

안녕하세요?


1. Form은 버튼, 텍스트상자, 콤보상자 등등을 탑재할 수 있는 Container 입니다.

    이렇게 형체와 모양을 가지는 클래스는 *.cs, *.desinger.cs 파일로 구성됩니다.

    (솔루션탐색기 에서 확인)


2. Form() 은 "생성자" 입니다.

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

    }

 

   -. Form1도 보시는 것처럼 클래스의 일종입니다.

 

    -. 클래스는 생성자, 필드속성(프로퍼티), 메서드, 이벤트, 소멸자로 구성됩니다.


   -. 생성자란 클래스안에 구성된 메서드의 특수한 형태인데,

       특징은 클래스와 이름이 같고(Form1 == Form1), 메서드 형태를 띠고 있으면서 Form1() ,

       public 접근 권한을 가지며, 반환형 자체가 없습니다. public void 또는 int Form1()

       또한, 클래스가 처음 메모리에 만들어질 때 딱 한 번만 실행됩니다.

   

   -.  InitializeComponent 메서드는 Form1.designer.cs 에 정의되어 있으며, 우리가 디자인한

       화면을 표시할 수 있도록 관련 코드를 Visual studio가 자동으로 작성합니다.


3. Form_Load()는 폼이 가지고 있는 여러개의 이벤트 중에 Load시에 발생하는 이벤트 입니다.


   -. 폼은 다음과 같은 이벤트 절차를 거쳐 우리 앞에 모습을 드러냅니다.

 

   -. Load 이벤트 →  Paint, Resize 이벤트 → Activate 이벤트


      |.. Load 이벤트 : 메모리에는 올라와 있지만, 아직 우리 눈에 보이지 않습니다.

      |.. Paint 이벤트 : 코드나 디자인에서 그린 화면을 실제 모니터에 그립니다.

      |.. Resize 이벤트 : 화면의 크기가 Posision( left, top), Size(width, height)

순으로 자리를 잡습니다.

      |.. Activate 이벤트 : 이제 처리를 마치고 화면이 우리 눈 앞에 나타납니다.


4. Form() 생성자에서도 코드는 동작 하였을 것입니다. 크기좌표를 0,0으로 이동하는 것

    Load가 시작되고, Paint / Resize를 진행하면서 처리되므로, Load 이벤트에 적은

    코드는 당연히 제대로 동작합니다. 하지만, 생성자 이후에도 좌표변경이 발생할 수 있습니다.

    이 경우 생성자는 재실행될 수 없습니다. 오직 한 번만 동작하므로. 따라서, Load 이벤트에

    우리가 원하는좌표를 설정하지 않을 경우, 임의로 변경된 좌표가 동작할 것입니다.

  

    생성자 (0,0)

   ...

    시작폼인 경우,

    Application.Run(new Form1()); (75,75) <-- 여기에서 좌표가 변경될 수 있습니다.

    ...

   Load


5. 결국, Form()은 생성자이며, Form_Load()는 이벤트 입니다.




도움이 되시길 바랍니다.

감사합니다.

 

 

written by

  

legend 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C과외/C#과외/VB과외 프로그래밍 과외.서울인천경기-방문강의.기타전국-화상강의.제대로 체계적으로 배우고싶은분들.15년경력 프리랜서.삼성/포스코/한진 등.

서울,인천,경기,분당,일산,과천,산본,부천,부평,평촌,안산,안양,광명,용인,시흥,성남,수원,평택,오산,화성,동탄,천안,아산,

c#프로그래밍1:1과외, 15년 이상 프로젝트 경력의 프리랜서 직접 강의,

c#프로그래밍 과외, c#프로그래밍교육, IT·컴퓨터·컴퓨터과외비·프로그래밍과외, c# 강좌, c# 프로그래밍,

데이터베이스, 데이터베이스 프로그래밍, db, DB, 과외비,컴퓨터1:1,컴퓨터개인지도,컴퓨터실무과외,컴퓨터과외,컴퓨터1:1과외,

서울,인천,경기,부천,안산,분당,일산,천안,과천,산본,안양,광명,평촌,수원,평택,오산,용인,부평,시흥,성남,화성,동탄

광주,부산,대구,대전,마산,창원,울산,전주,군산,원주,강릉,충청남도,충청북도,강원도,경상남도,경상북도,전라남도,전라북도,제주도