1 / 14

Windows Forms

Windows Forms. Windows Forms Form class 폼 생성 및 보이기 Message Loop : Application.Run() Windows Forms Life Cycle Windows Forms 속성 모양변경 , 위치 및 크기 , 초기상태 폼 모달리티 (modality) MDI(Multiple Document Interface). Windows Forms.

beyonce
Download Presentation

Windows Forms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Windows Forms • Windows Forms • Form class • 폼 생성 및 보이기 • Message Loop : Application.Run() • Windows Forms Life Cycle • Windows Forms 속성 • 모양변경, 위치 및 크기, 초기상태 • 폼 모달리티(modality) • MDI(Multiple Document Interface) WinPG6_WinForm

  2. Windows Forms • Windows 응용 프로그램의 사용자 인터페이스를 구성하는 창 또는 대화 상자(응용 프로그램에 표시되는 모든 창) • 종류 : 표준 창, 도구 창, 테두리가 없는 창 및 부동 창, 대화 상자와 같은 모달 창, MDI(다중 문서 인터페이스) • Form Class • Namespace : System.Windows.Forms • 상속구조 • Form 생성 및 보이기 System.Object System.MarshalByRefObject System.ComponentModel.Component System.Windows.Forms.Control System.Windows.Forms.ScrollableControl System.Windows.Forms.ContainerControl System.Windows.Forms.Form • Form form1 = new Form(); • form1.show(); • form1.ShowDialog();// 모달폼 WinPG6_WinForm

  3. //콘솔응용프로그램에서의 Form 생성 예 class CreateForm { public static void form1_MouseMove(object send, MouseEventArgs arg) { Form form1 = (Form)send; form1.Text = "x:" + arg.X + ", y:" + arg.Y; } static void Main(string[] args) { Form form1 = new Form(); //Form 생성 Form form2 = new Form(); Button button1 = new Button(); //Button객체 생성 button1.Text = "OK";//button속성설정 form1.Text = "First Form"; //폼속성 설정 form1.Controls.Add(button1);//폼에 버튼컨트롤 추가 form1.MouseMove += new MouseEventHandler(form1_MouseMove);//이벤트핸들러 등록 Application.Run(form1); //응용프로그램 메시지루프를 실행 form2.Text = "Second Form"; form2.MaximizeBox = false; //최대화 버튼 취소 form2.Show(); //폼을 표시 // form2.ShowDialog(); //폼을 모달창으로 표시 } } WinPG6_WinForm

  4. 응용 프로그램 Message loop 메시지 핸들러 #1 메시지 핸들러 #2 메시지 핸들러 #3 ... 응용 프로그램 메시지 큐 Message Loop • 메시지 큐에서 메시지를 하나씩 꺼내어 처리하기 위한 반복문 • 응용프로그램이 종료될 때까지 반복 • Application.Run(Form) • 현재 스레드에서 표준 응용 프로그램 메시지 루프의 실행을 시작하고 지정된 폼을 표시 • 폼이 닫힐 때 메시지 루프 종료 메시지 보냄 WinPG6_WinForm

  5. Form Life Cycle WinPG6_WinForm

  6. 폼의 속성(Property) • Name : 폼의 이름 • Text : 폼의 제목표시줄 • BackColor : 배경색 (색상 이름 또는 빨강(Red), 녹색(Green), 파랑(Blue)의 RGB 값으로 지정) form1.BackColor = System.Drawing.Color.DarkBlue; • BackgroundImage : 폼의 배경그림 • Icon : 폼 아이콘 • Opacity : 폼의 투명도 • 폼의 버튼 사용 여부 form1.MinimizeBox = false; WinPG6_WinForm

  7. ToolWindow 표준 Window None • FormBrderStyle : 폼의 테두리 모양 form1.FormBorderStyle = FormBorderStyle .FixedSingle ; WinPG6_WinForm

  8. Size : 폼의 크기 설정 • form1.Size = new System.Drawing.Size(100, 100); • 폭 : Form1.Width = 200 • 높이 : Form1.Height = 200 • Location : 폼의 위치 설정 • form1.Location = new Point(100, 100); • X좌표 : Form1.Left = 200; • Y좌표 : Form1.Top = 200; • StartPosition : 초기 위치 설정 form1.StartPosition = FormStartPosition.Manual; WinPG6_WinForm

  9. WindowState : 폼의 표시 상태 설정 • Normal : 보통 상태로 변경 • Minimized : 최소화 상태로 변경 • Maximized : 최대화 상태로 변경 form1.WindowState = FormWindowState.Normal; • ShowInTaskbar : Windows 작업표시줄에 표시여부 설정 • 작업표시줄로 프로그램 전환 불가능, <Alt+Tab>을 사용하여 프로그램 전환 가능 form1.ShowInTaskbar = false; • TopMost : 최상위 창으로 설정 form1.TopMost = true; • Visible : 화면에 폼 표시 여부 설정 form1.Visible = true; • 폼의 보이기 / 숨기기 / 종료 함수 • Show() / Hide() • 메모리에 상주된 폼을 화면에서 보이게, 보이지 않게 설정 • Close() • 메모리에서 해제, 폼 종료 WinPG6_WinForm

  10. 폼 모달리티(modality) • Modal Form • 모달 폼이 표시되는 동안 제어권을 독점하고 있는 형태 • 사용자로부터 입력받은 정보로 다음 진행상태가 결정되는 경우에 사용 • ShowDialog() 메서드를 사용 • 예 : 열기, 저장, 옵션 창 • Modeless Form • 모달이 아닌 폼이 표시되는 동안 다른 폼으로의 제어이동이 가능한 형태 • 서로 다른 창 사이에서의 정보교환을 필요로 하는 경우에 사용 • Show() 메서드를 사용 • 예 : “찾기 및 바꾸기” 창 WinPG6_WinForm

  11. MDI(Multiple Document Interface) • MDI 프로그램은 하나의 부모 창(컨테이너라고도 부른다)과 여러 개의 자식 창으로 구성 • 부모창(Parent Form) • 다른 창을 영역 내에 포함시키는 창 • IsMdiContainer 속성값을 true로 설정 form1.IsMdiContainer = true; • 활성화된 자식창 확인 Form activeChild = this.ActiveMdiChild; • 자식창(Child Form) • 부모창의 영역 내에 존재하는 창 • MdiParent 속성값에 부모 객체 설정 form2.MdiParent = form1; WinPG6_WinForm

  12. MDI 자식폼 정렬 • LayoutMdi 속성을 이용하여 자식폼 정렬 form1.LayoutMdi(System.Windows.Forms.MdiLayout.Cascade); WinPG6_WinForm

  13. MDI자식 폼 • MdiChildren속성을 사용하여 모든 자식폼을 배열로 얻기 Form[] forms = form1.MdiChildren foreach (Form f in forms) { … } WinPG6_WinForm

  14. 연습문제 • PictureViewer 폼을 자식폼으로 하는 MDI Picture Viewer Form을 구성하는 프로그램 작성 <처리조건> • Child 생성 버튼 : PictureViewer 폼을 자식폼으로 생성하기 • 수직 바둑판식 배열, 계단식 배열 버튼 : 자식폼들을 정렬하기 • 모두 닫기 버튼 : 모든 자식폼들을 닫기 <출력화면> WinPG6_WinForm

More Related