다음을 통해 공유


방법: C# Windows Forms 응용 프로그램 만들기

업데이트: 2007년 11월

이 항목에서는 Windows Forms을 사용하여 비교적 간단한 C# 프로그램을 만드는 과정을 보여 주고 이를 통해 Visual C# Express Edition IDE(통합 개발 환경)의 요소에 대해 설명합니다. Windows Forms은 표준 Windows 응용 프로그램 UI(사용자 인터페이스)를 이루는 대화 상자, 메뉴, 단추 및 기타 컨트롤을 비롯한 구성 요소를 프로젝트에 제공합니다. 근본적으로 이들 컨트롤은 .NET Framework 클래스 라이브러리에 있는 클래스에 불과합니다. Visual C# Express Edition의 디자이너 뷰를 사용하여 응용 프로그램의 기본 폼에 컨트롤을 끌어 놓고 해당 크기 및 위치를 조정할 수 있습니다. 이러한 작업을 수행하는 동안 IDE는 해당 클래스의 인스턴스를 만들고 초기화하는 소스 코드를 자동으로 추가합니다.

다음 예제에서는 사용자가 즐겨찾는 웹 사이트의 바로 가기를 사용하여 구성할 수 있는 웹 브라우저 응용 프로그램을 만드는 방법을 보여 줍니다.

이 단원에서는 다음과 같은 작업을 완료하는 방법을 배웁니다.

  • 새 Windows Forms 응용 프로그램을 만듭니다.

  • 코드 뷰와 디자이너 뷰 사이를 전환합니다.

  • Windows Form의 속성을 변경합니다.

  • MenuStrip 컨트롤을 추가합니다.

  • Button 컨트롤을 추가합니다.

  • ComboBox 컨트롤을 만들고 채웁니다.

  • WebBrowser 컨트롤을 사용합니다.

  • 컨트롤에 대한 이벤트 처리기를 만듭니다.

비디오에 링크 비디오 데모를 보려면 Video How to: Create a C# Windows Forms Application을 참조하십시오.

C# Windows 응용 프로그램을 만들려면

  1. 파일 메뉴에서 새 프로젝트를 클릭합니다.

    새 프로젝트 대화 상자가 나타납니다. 이 대화 상자에서는 Visual C# Express Edition에서 만들 수 있는 여러 기본 응용 프로그램 종류를 보여 줍니다.

  2. 프로젝트 형식으로 Windows Forms 응용 프로그램을 선택합니다.

  3. 응용 프로그램의 이름을 웹 브라우저로 변경합니다.

  4. 확인을 클릭합니다.

    Visual C# Express Edition에서는 프로젝트 제목에 따라 이름이 지정된 새 프로젝트용 폴더를 만든 다음 디자이너 뷰에 Form1이라는 제목의 새 Windows Form을 표시합니다. 언제든지 디자인 화면 또는 코드 창을 마우스 오른쪽 단추로 누르고 코드 보기 또는 디자이너 보기를 선택하여 이 뷰와 코드 뷰 사이를 전환할 수 있습니다.

    ExpressForm1cs 스크린 샷

    디자이너 뷰에 표시되는 Windows Form은 응용 프로그램이 열릴 때 열리는 창을 시각적으로 표현한 것입니다. 디자이너 뷰에서는 도구 상자의 다양한 컨트롤을 폼으로 끌어 놓을 수 있습니다. 이들 컨트롤이 "실제로 작동"하지는 않습니다. 이들은 폼 위에서 정확한 위치로 옮기기에 편리한 이미지에 불과합니다.

    사용자가 컨트롤을 폼에 끌어 놓으면 Visual C#은 내부적으로 작업하여 프로그램이 실행될 때 실제 컨트롤을 정확히 배치하는 코드를 만듭니다. 이 소스 코드는 일반적으로 중첩되어 표시되지 않는 파일에 있습니다. 솔루션 탐색기에서 Form1.cs를 확장하면 Form1.designer.cs라는 이름의 이 파일을 볼 수 있습니다.

  5. 코드 뷰에 있는 경우 코드 창을 마우스 오른쪽 단추로 클릭한 다음 디자이너 보기를 클릭하여 디자이너 뷰로 전환합니다. 이제 Windows Form의 크기를 변경합니다.

    1. Windows Form의 오른쪽 아래 모퉁이를 클릭합니다.

    2. 포인터가 양방향 화살표가 되면 폼의 너비와 깊이가 화면의 1/4 이상이 될 때까지 폼의 모퉁이를 끕니다.

      이 창에 웹 페이지가 표시되므로 충분한 크기를 확보하는 것이 좋습니다.

  6. 속성 창이 표시됩니다. 기본 위치는 IDE의 오른쪽 아래 섹션이지만 원하는 경우 다른 위치로 이동할 수 있습니다. 다음 그림에서는 오른쪽 위 모퉁이에 표시되어 있습니다. 속성 창이 표시되어 있지 않으면 보기 메뉴에서 속성 창을 클릭합니다. 이 창에는 현재 선택한 Windows Form이나 컨트롤의 속성이 나열되며, 기존 값을 이 창에서 변경할 수 있습니다.

  7. Windows Form의 제목을 변경합니다.

    1. 폼을 클릭하여 선택합니다.

    2. 속성 창에서 텍스트까지 아래로 스크롤한 다음 "Form1" 텍스트를 선택하고 Web Browser를 입력합니다.

    3. Enter 키나 Tab 키를 눌러 포커스를 "텍스트" 텍스트 상자 밖으로 이동합니다.

    Windows Form의 맨 위(제목 표시줄)에 있는 텍스트가 변경된 것을 확인할 수 있습니다.

    ExpressTextWebBrowser 스크린 샷

    컨트롤의 이름을 간편하게 변경하려면 컨트롤을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다. 이름 속성에 컨트롤의 새 이름을 입력할 수 있습니다.

  8. 도구 모음에서 도구 상자 단추를 클릭하거나 보기 메뉴에서 도구 상자를 선택합니다. 컨트롤 목록을 아래로 스크롤한 다음 MenuStrip이 나타날 때까지 메뉴 및 도구 모음을 확장합니다. 이 컨트롤을 Windows Form의 아무 위치에나 끌어 놓습니다.

    ExpressMainmenuForm 스크린 샷

    이 컨트롤을 통해 폼의 맨 위에 기본 메뉴가 만들어집니다.

  9. 여기에 입력으로 표시된 상자에 메뉴 이름을 입력합니다. 여기서는 탐색이라고 입력합니다. Enter 키를 누르면 다른 메뉴 및 메뉴 항목을 만드는 빈 상자가 새로 나타납니다. 아래에 있는 상자에 홈을 입력합니다. Enter 키를 누르면 추가 상자가 표시됩니다. 뒤로 이동을 입력합니다. Enter 키를 누르고 앞으로 이동을 입력합니다.

    ExpressTypeHere 스크린 샷

    이들 메뉴 항목은 기본적인 웹 사이트 탐색 컨트롤을 구성합니다.

  10. 단추를 추가합니다.

    도구 상자의 공용 컨트롤 범주에서 Button 컨트롤을 끌어 Windows Form의 대략 한가운데, 메뉴 표시줄 바로 아래에 놓습니다. 속성 창에서 텍스트 속성을 button1에서 이동으로 변경하고 (이름)과 같이 표시된 디자인 이름을 button1에서 goButton으로 변경합니다.

  11. ComboBox를 추가합니다.

    도구 상자의 공용 컨트롤 범주에서 ComboBox 컨트롤을 끌어서 새 단추 왼쪽에 놓습니다. 가장자리 및 모퉁이를 끌어 ComboBox가 단추와 정렬되도록 크기 및 위치를 변경합니다.

    참고:

    Windows Form에서 컨트롤을 이동하면 파란색 선이 나타나는 것을 볼 수 있습니다. 이러한 안내선을 통해 컨트롤을 수평 및 수직으로 쉽게 정렬할 수 있습니다. 컨트롤을 한 번에 여러 개 선택하여 정렬할 수도 있습니다. 이렇게 하려면 컨트롤 주위를 클릭하고 선택 상자를 끌거나, Shift 키를 누른 채로 컨트롤을 클릭합니다. 여러 컨트롤을 선택한 후 정렬과 크기 조정 아이콘을 사용하여 맞춤과 크기를 수정할 수 있습니다. 이 아이콘은 디자인 창 맨 위의 레이아웃 도구 모음에 표시됩니다.

  12. ComboBox를 채웁니다.

    ComboBox에서는 사용자가 선택할 수 있는 옵션의 드롭다운 목록을 제공합니다. 이 프로그램에서는 ComboBox를 즐겨찾는 웹 사이트 목록으로 채워 사용자가 빠르게 액세스할 수 있도록 합니다.

    사이트 목록을 만들려면 ComboBox를 선택하고 속성을 살펴 봅니다. 항목 속성을 선택하면 줄임표 단추(...)가 있는 (컬렉션)이라는 단어를 볼 수 있습니다. 이 단추를 클릭하여 ComboBox의 내용을 변경합니다. 각 항목을 입력한 다음 Enter 키를 누르면서 웹 사이트 URL을 필요한 만큼 추가합니다.

    참고:

    각 웹 사이트 주소 앞에는 http://를 붙여야 합니다.

  13. WebBrowser 컨트롤을 추가합니다.

    도구 상자의 공용 컨트롤 범주에서 WebBrowser 컨트롤이 나타날 때까지 아래로 스크롤합니다. 컨트롤을 Windows Form으로 끌어 놓습니다. WebBrowser 컨트롤의 크기를 조정하여 ComboBoxButton 컨트롤을 가리지 않는 범위에서 Windows Form 안에 맞춥니다. WebBrowser 컨트롤의 크기가 잘 조정되지 않는 경우, 먼저 원하는 크기로 조정한 다음 속성을 열고 Dock 설정을 찾아 없음으로 설정합니다. Anchor 설정을 위쪽, 아래쪽, 왼쪽, 오른쪽으로 설정하면 응용 프로그램 창의 크기를 변경할 때 WebBrowser 컨트롤의 크기가 적절하게 조정됩니다.

    WebBrowser 컨트롤에서는 웹 페이지를 렌더링하는 복잡한 작업을 모두 수행합니다. 사용자는 WebBrowser 클래스의 인스턴스를 통해 이 컨트롤에 액세스할 수 있습니다. form1.Designer.cs를 살펴보면 디자이너를 통해 추가한 다른 항목을 나타내는 클래스의 인스턴스와 함께 이 클래스의 인스턴스가 응용 프로그램 코드에 추가된 것을 볼 수 있습니다. 컨트롤에 대한 이벤트 처리기 및 호출 메서드를 추가할 때 이들 인스턴스를 사용합니다.

  14. Button 컨트롤에 대한 이벤트 처리기를 추가합니다.

    지금까지 응용 프로그램의 디자인 단계를 마쳤으며, 이제 일부 코드를 추가하여 프로그램의 기능을 제공할 차례입니다.

    프로그램에는 단추와 각 메뉴 옵션에 대한 이벤트 처리기가 있어야 합니다. 이벤트 처리기는 사용자가 컨트롤과 상호 작용할 때 실행되는 메서드입니다. Visual C# Express Edition에서는 자동으로 빈 이벤트 처리기를 만듭니다.

    단추를 두 번 클릭하면 프로젝트에 대한 코드 편집기가 나타납니다. 또한 click 이벤트에 대한 이벤트 처리기가 자동으로 만들어진 것을 볼 수 있습니다. click 이벤트는 사용자가 단추를 클릭할 때 발생하는 이벤트 메시지입니다. 다음 코드와 같이 이벤트 처리기 메서드에 코드를 추가합니다.

    private void goButton_Click(object sender, System.EventArgs e)
    {
        webBrowser1.Navigate(new Uri(comboBox1.SelectedItem.ToString()));
    }
    

    이 코드에서는 ComboBox 컨트롤에서 현재 선택된 항목(웹 URL을 포함하는 문자열)을 가져와서 웹 브라우저의 Navigate 메서드에 전달합니다. Navigate 메서드는 해당 위치에 있는 웹 페이지의 내용을 로드하고 표시합니다.

  15. MenuStrip 옵션에 대한 이벤트 처리기를 추가합니다.

    디자이너 창으로 돌아간 다음 각 메뉴 하위 항목을 차례로 두 번 클릭하면 Visual C# Express Edition에서 각 항목에 대한 이벤트 처리기 메서드를 만듭니다. 이들 메서드를 편집하여 다음과 같은 코드가 되도록 합니다.

    private void homeToolStripMenuItem_Click(object sender, System.EventArgs e)
    {
        webBrowser1.GoHome();
    }
    
    private void goForwardToolStripMenuItem_Click(object sender, System.EventArgs e)
    {
        webBrowser1.GoForward();
    }
    
    private void goBackToolStripMenuItem_Click(object sender, System.EventArgs e)
    {
        webBrowser1.GoBack();
    }
    

    각 메뉴 처리기에서는 WebBrowser 클래스에 지원되는 탐색 메서드를 호출합니다.

    참고:

    이 코드를 보면 메뉴 옵션에 지정된 기본 이름이 혼동을 줄 소지가 다분함을 알 수 있습니다. 따라서 각 메뉴 컨트롤을 만들 때 속성 편집기를 사용하여 이름을 변경하는 것이 좋습니다. 이렇게 하면 처리기의 이름이 메뉴 옵션의 이름을 반영하게 됩니다.

  16. Visual C#에서 자동으로 만들어진 코드를 살펴 봅니다.

    Visual C# IDE에는 초기화 코드가 이미 작성되어 있습니다. 코드 뷰에서 Form1 클래스의 생성자를 찾습니다. 이 생성자에는 public Form1()이라는 시그니처가 있습니다. 그런 다음 생성자 안에서 호출되는 InitializeComponent 메서드를 마우스 오른쪽 단추로 클릭하고 정의로 이동을 클릭합니다. 컨트롤을 끌어서 놓고 속성 창에서 속성을 설정하는 동안 내부적으로 작성된 코드를 모두 볼 수 있습니다.

  17. 초기화 코드를 직접 추가합니다.

    마지막 단계는 Form1에 사용자가 직접 초기화 코드를 추가하는 것입니다. 생성자에서는 예외를 throw할 가능성이 있는 코드를 호출해서는 안 됩니다. 따라서 이러한 코드는 다른 위치 즉, Form1_Load 메서드에 배치해야 합니다. 코드 편집기 맨 위에서 Form1.cs[Design] 탭을 클릭하여 Windows Form으로 돌아갑니다. 폼을 선택하고 속성 창에서 번개 모양의 이벤트 단추를 클릭한 다음 로드를 두 번 클릭합니다. 그러면 이벤트 처리기 메서드가 추가되고 커서가 코드 뷰의 메서드에 놓입니다.

    사용자가 프로그램을 시작하면 Windows에서는 Load 이벤트를 전송하여 응용 프로그램의 폼에 알립니다. 폼에서 이 이벤트를 받으면 Form1_Load 메서드가 호출됩니다. 이벤트에 대한 응답으로 호출되는 메서드를 이벤트 처리기라고 합니다. 시스템은 이벤트를 제 때에 호출합니다. 사용자가 할 일은 이벤트가 발생할 때 실행하려는 코드를 이벤트 처리기에 배치하는 것입니다.

    코드 뷰에서 다음 코드와 같이 Form1_Load 메서드에 두 줄을 추가합니다. 이 코드는 WebBrowser 컨트롤에 컴퓨터의 기본 홈 페이지를 표시하고 ComboBox의 초기 값도 설정합니다.

    private void Form1_Load(object sender, EventArgs e)
    {
        comboBox1.SelectedIndex = 0;
        webBrowser1.GoHome();
    }
    
  18. 프로그램을 빌드하여 실행합니다.

    F5 키를 눌러 웹 브라우저를 빌드하고 실행합니다. Windows Form이 화면에 표시되고 컴퓨터의 기본 홈 페이지가 표시됩니다. ComboBox 컨트롤을 사용하여 웹 사이트를 선택하고 이동을 클릭하여 탐색할 수 있습니다. 메뉴 옵션을 통해 홈 페이지로 돌아오거나 이전에 방문한 웹 사이트를 앞뒤로 탐색할 수 있습니다.

    MSN 샘플 스크린 샷

    C# 프로그래밍을 처음 접하는 사용자는 C# 언어 입문 단원을 읽어 보십시오. Visual C# Express Edition 개발 환경에 대한 자세한 내용 특히, IntelliSense를 사용하여 콘솔 응용 프로그램을 만드는 방법에 대해서는 방법: C# 콘솔 응용 프로그램 만들기을를 참조하십시오. . Windows Presentation Foundation 응용 프로그램을 빌드하는 방법에 대한 자세한 내용은 방법: C# WPF 응용 프로그램 만들기를 참조하십시오.

참고 항목

작업

방법: C# 콘솔 응용 프로그램 만들기

방법: C# WPF 응용 프로그램 만들기

개념

C# 언어 입문

기타 리소스

Visual C# 응용 프로그램 처음 만들기

Visual C# Express에 관한 유용한 정보