ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C# 고급폼 (2020.06.16)
    C# 2020. 6. 16. 18:17

    메뉴

    윈폼 애플리케이션에서 가장 일반적인 사용자 인터페이스

    윈폼 애플리케이션이 제공하는 기능을 사용자가 쉽게 이해하고 사용할 수 있도록 도와주는 기능

     

    메뉴의 종류

    메인메뉴 (main menu)

    - 폼의 상단에 배치되는 주요 메뉴

    상황메뉴 (context menu)

    - 마우스 오른쪽 버튼을 클릭했을 때 나타나는 팝업 메뉴

    보기(V)

    정렬 기준(C)   메뉴 -> 단축키 하는 방법

     

    메인 메뉴의 작성

    메뉴 항목의 추가

     - 메뉴에 단축문자를 부여하기 위한 방법

        * 사용할 단축문자 앞에 &를 붙임

        * <Alt>키와 단축문자를 눌러서 메뉴의 선택이 가능

     

     

    메인 메뉴

     - 폼의 상단에 배치되는 메뉴

     - 마우스 클릭뿐만 아니라 단축키를 통해서는 접근할 수 있는 가장 기본적인 사용자 인터페이스

     - 통합 개발 환경의 MenuStrip 컴포넌트를 통하여 작성

     

     

    메뉴 항목의 단축키 적용

     - 단축키를 적용할 메뉴 항목 선택

     

    구분선

    - 메뉴 항목을 그룹화하기 위하여 구분선을 사용

    - 메뉴 항목에 '-'를 입력

     

    메뉴 항목을 클릭하면 발생하는 이벤트

     

     

    항목을 입력 단축키를 넣을 때는 (&C) 구분선은 ' - '

     

    트리구조로 이루어져 있으며, MenuStrip이 최상위고 그 밑의 하위 메뉴들을 구성한다.

     

    단축키 프로퍼티

    메뉴창 이미지 프로퍼티

    새로운 창 띄우고 싶을 때.

     private void 프로그램정보HToolStripMenuItem_Click(object sender, EventArgs e)
            {
                AboutBox1 aboutbox = new AboutBox1();
                aboutbox.Show();
            }

    프로그램 정보 클릭시 새로 만든 aboutBox 를 띄운다.

    위 내용을 바꾸고 싶으면 솔루션탐색기(솔루션 이름)-> 우클릭 -> 속성 -> 어셈블리 정보 -> 수정

    값 바꿔주기

     

     

    ContextMenu

     

    마우스 우클릭 하면 나오는 메뉴

     

    컨트롤 위에서 마우스의 오른쪽 버튼을 클릭하였을 때 표시되는 팝 업 메뉴

    현재 애플리케이션의 상태가 반영 상황에 따라 독자적인 메뉴 항목을 가짐

     

     

    ContextMenuStrip 컴포넌트의 추가

     

    상황 메뉴는 메인 메뉴와 동일한 프로 퍼티와 이벤트를 가짐

     

    완성된 상황 메뉴를 해당 폼 또는 컨트 롤의 ContextMenu 프로퍼티에 설정

    - 컨트롤마다 상황 메뉴를 가질 수 있기 때문에 적용하고자 하는 컨트롤의 ContextMenu 프로퍼티에 설정

    - 폼의 ContextMenu 프로퍼티에 작성된 contextMenu1 컴포넌트를 지정한 예 

     

     

     

    텍스트박스의 이벤트

     private void textBox1_MouseClick(object sender, MouseEventArgs e)
            {
                //마우스 우클릭 일 때 처리한다.
                if(e.Button==MouseButtons.Right)
                {
                    contextMenuStrip1.Show(e.Location);
                }
            }

    단축키도 동작한다. (Ctrl + N), (Ctrl + S)

     

     

    마우스 이벤트

     

    마우스

    윈도우 사용자에게 가장 편리하고 친숙한 입력장치

    윈폼 애플리케이션의 사용자 상호작용은 대부분 마우스를 통해 이루어 짐

    사용자가 마우스를 이동하거나 클릭하면 이벤트가 발생

     

    마우스 이벤트

    이동 이벤트

    -사용자가 마우스의 위치를 이동시킬 경우 발생

     

    선택 이벤트

    -사용자가 마우스의 버튼을 클릭할 경우 발생

     

    마우스 이동 이벤트

    -MouseEnter

    마우스 포인터가 컨트롤이나 폼 영역에 들어올 때 발생

    -MouseHover

    마우스 포인터가 컨트롤이나 폼에서 이동하는 것을 멈출 때 발생

    매번 발생하지 않으며 처음 멈출 때만 발생

    -MouseLeave

    마우스 포인터가 컨트롤이나 폼 영역을 벗어날 때 발생

    -MouseMove

    마우스 포인터가 새로운 영역으로 이동할 때 발생

    -MouseWheel

    입력포커스를 가지고 있는 컨트롤이나 폼 위에서 마우스 휠 버튼을 회 전시킬 때 발생 고급 폼 

     

     

    Button

    마우스의 상태를 나타내는 MouseButtons 열거형 값

    MouseButtons 열거형

    Left : 마우스 왼쪽 버튼을 클릭한 상태

    Middle : 마우스 중앙 버튼을 클릭한 상태

    None : 마우스를 누르지 않은 상태

    Right : 마우스 오른쪽 버튼을 클릭한 상태

    XButton1 : 첫 번째 X버튼을 클릭한 상태

    XButton2 : 두 번째 X버튼을 클릭한 상태

     

    Clicks : 마우스 버튼을 클릭한 횟수

     

    Delta 마우스 휠의 회전수

    X 좌표 내에서 마우스 위치의 X좌표

    Y 좌표 내에서 마우스 위치의 Y좌표

     

     private void textBox1_MouseMove(object sender, MouseEventArgs e)
            {
                LblMouseLocation.Text = $"X 좌표{e.X} Y 좌표 {e.Y}";
            }

     

     

    키보드 이벤트

    윈폼 애플리케이션은 사용자로부터 직접 키보드 입력을 받지 않음

     - 텍스트 박스와 같은 컨트롤을 이용하여 키보드 입력이 이루어짐

     

    C# 은 컨트롤을 이용한 키보드 입력 이외에도 사용자 입력을 직접 처리할 수 있는 방법을 제공함

     

    ***포커스가 중요하다

    파란색 회색으로 보임

     

    Focus()

    메소드 특정 컨트롤로 입력 포커스를 이동시키기 위한 메소드

    Control 클래스로부터 파생된 대부분의 컨트롤들이 가지는 메소드

    특정 컨트롤에 대한 포커스가 변경될 경우, 참을 반환

    특정 컨트롤에 대한 포커스가 변경되지 못할 경우, 거짓을 반환

     

    Form의 Activate 이벤트에서 주고 싶은 처음 포커스를 줄수도 있다.

     

     

    KeyDown

    사용자가 키를 누를 때 발생

    키 상태와 보조키를 위한 Keys 열거형 정보를 사용할 수 있음

     

    KeyPress

    키가 완전히 눌러진 상태에서 발생

    키 문자에 대한 정보를 사용할 수 있음

     

    KeyUp

    키를 떼었을 때 발생

    키 상태와 보조키를 위한 Keys 열거형 정보를 사용할 수 있음

     

    이벤트 발생순서 KeyDown -> KeyPress -> KeyUp

     

    KeyDown, KeyUP 이벤트 처리기

    KeyEventArgs 클래스의 객체를 매개 변수로 가짐

    KeyEventArgs 클래스는 키보드 입력을 직접 처리할 수 있는 프로퍼티를 제공 

    키의 상태와 보조키에 대한 정보를 쉽게 얻을 수 있음

     

     private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar == 13) //enter 키가 13이다.
                {
                    button1_Click(sender, e);
                    //button1_Click(sender, new EventArgs());//위에걸로 안될 때
                }
            }

    enter 키를 누르면 ' 추가 ' 버튼의 역할을 한다.

     

     

    상태 표시줄, 툴바

    메뉴 및 도구 모음 -> StatusStrip, ToolStrip

    제목표시줄과 툴바

     

    툴바

     

    click이벤트에 대해서 만들어 놓은 메서드를 가져온다.

    private void toolStripButton1_Click(object sender, EventArgs e)
            {
                새파일NToolStripMenuItem_Click(sender,  e);
            }

    툴바도 똑같다. 알아서 한다.

     

    요런것들이 프로그램답게하는 역할을 한다.

    'C#' 카테고리의 다른 글

    C# 윈폼 Chart 컨트롤  (0) 2020.06.18
    C# 고급 컨트롤  (0) 2020.06.17
    C# 윈폼 컨트롤(2020.06.16)  (0) 2020.06.16
    C# 윈폼 계산기  (0) 2020.06.15
    C# 윈폼 (2020.06.15)  (0) 2020.06.15
Designed by Tistory.