데스크톱 가이드(Windows Forms .NET)

Windows용 데스크톱 클라이언트 앱을 만드는 UI 프레임워크인 Windows Forms에 관한 데스크톱 가이드를 시작합니다. Windows Forms 개발 플랫폼은 컨트롤, 그래픽, 데이터 바인딩, 사용자 입력을 포함하여 다양한 앱 개발 기능 세트를 지원합니다. Windows Forms는 Windows Forms 앱을 쉽게 만들 수 있는 Visual Studio의 끌어서 놓기 비주얼 디자이너를 제공합니다.

중요

.NET 7 및 .NET 6에 관한 데스크톱 가이드 설명서는 제작 중입니다.

Windows Forms에는 다음 두 가지 구현이 있습니다.

  1. GitHub에서 호스트되는 오픈 소스 구현.

    이 버전은 .NET 6+에서 실행됩니다. Windows Forms 비주얼 디자이너에는 최소한 Visual Studio 2019 버전 16.8이 필요합니다.

    최신 버전은 Visual Studio 2022 버전 17.4를 사용하는 .NET 7용 Windows Forms입니다.

  2. Visual Studio 2022, Visual Studio 2019, Visual Studio 2017에서 지원되는 .NET Framework 4 구현.

    .NET Framework 4는 Windows 전용 .NET 버전이며 Windows 운영 체제 구성 요소로 간주합니다. 이 버전의 Windows Forms는 .NET Framework와 함께 배포됩니다.

이 데스크톱 가이드는 .NET 5 이상 버전의 Windows Forms용으로 작성되었습니다. Windows Forms의 .NET Framework 버전에 관한 자세한 내용은 .NET Framework용 Windows Forms를 참조하세요.

소개

Windows Forms는 Windows 데스크톱 앱을 빌드하기 위한 UI 프레임워크입니다. 이는 Visual Studio에서 제공되는 비주얼 디자이너를 기반으로 데스크톱 앱을 만드는 생산성이 가장 높은 방법 중 하나를 제공합니다. 시각적 컨트롤의 끌어서 놓기 배치와 같은 기능을 통해 데스크톱 앱을 쉽게 빌드할 수 있습니다.

Windows Forms를 사용하여 오프라인으로 또는 인터넷에 연결된 동안 쉽게 배포, 업데이트, 작업할 수 있는 풍부한 앱을 그래픽 방식으로 개발합니다. Windows Forms 앱은 앱이 실행되고 있는 컴퓨터의 로컬 하드웨어 및 파일 시스템에 액세스할 수 있습니다.

Windows Forms 앱을 만드는 방법을 알아보려면 Tutorial: Create a new WinForms app(자습서: 새 WinForms 앱 만들기)을 참조하세요.

.NET Framework에서 마이그레이션하는 이유

.NET용 Windows Forms는 .NET Framework를 통해 새로운 기능과 향상된 기능을 제공합니다. 자세한 내용은 .NET 7용 Windows Forms의 새로운 기능을 참조하세요. 앱을 업그레이드하는 방법을 알아보려면 Windows Forms 데스크톱 앱을 .NET 7로 업그레이드하는 방법을 확인하세요

풍부한 대화형 사용자 인터페이스 빌드

Windows Forms는 파일 시스템 읽기 및 쓰기와 같은 일반적인 앱 작업을 간소화하는 관리형 라이브러리 세트인 .NET의 UI 기술입니다. Visual Studio와 같은 개발 환경을 사용하는 경우 정보를 표시하고, 사용자 입력을 요청하고, 네트워크를 통해 원격 컴퓨터와 통신하는 Windows Forms 스마트 클라이언트 앱을 만들 수 있습니다.

Windows Forms에서 은 정보를 사용자에게 표시하는 비주얼 화면입니다. 일반적으로 양식에 컨트롤을 추가하고 마우스 클릭이나 키 누름과 같은 사용자 동작에 대한 응답을 개발하여 Windows Forms 앱을 빌드합니다. ‘컨트롤’은 데이터를 표시하거나 데이터 입력을 수락하는 고유한 UI 요소입니다.

사용자가 폼이나 컨트롤 중 하나에 작업을 수행하면 이벤트가 생성됩니다. 앱은 코드를 사용하여 해당 이벤트에 대응하고, 발생 시 이벤트를 처리합니다.

Windows Forms에는 텍스트 상자, 단추, 드롭다운 상자, 라디오 단추 및 웹 페이지를 표시하는 컨트롤 등 양식에 추가할 수 있는 다양한 컨트롤이 포함되어 있습니다. 기존 컨트롤이 요구를 충족하지 않는 경우 Windows Forms에서 UserControl 클래스를 사용하여 고유한 사용자 지정 컨트롤을 만들 수도 있습니다.

Windows Forms에는 Microsoft Office와 같은 고급 앱의 기능을 에뮬레이트하는 풍부한 UI 컨트롤이 있습니다. ToolStripMenuStrip 컨트롤을 사용하는 경우 텍스트와 이미지를 포함하고, 하위 메뉴를 표시하며, 텍스트 상자 및 콤보 상자와 같은 기타 컨트롤을 호스트하는 도구 모음과 메뉴를 만들 수 있습니다.

Visual Studio에서 끌어서 놓기 Windows Forms 디자이너를 통해 Windows Forms 앱을 쉽게 만들 수 있습니다. 커서를 사용하여 컨트롤을 선택하고 양식에서 원하는 위치에 배치하면 됩니다. 디자이너는 컨트롤을 쉽게 배치하기 위한 모눈선 및 맞춤선과 같은 도구를 제공합니다. FlowLayoutPanel, TableLayoutPanel, SplitContainer 컨트롤을 사용하여 더 짧은 시간 안에 고급 양식 레이아웃을 만들 수 있습니다.

끝으로, 고유한 사용자 지정 UI 요소를 만들어야 하는 경우 System.Drawing 네임스페이스에는 선, 원 및 기타 도형을 폼에 직접 렌더링하는 다양한 클래스가 포함되어 있습니다.

양식 및 컨트롤 만들기

이러한 기능을 사용하는 방법에 대한 단계별 정보는 다음 도움말 항목을 참조하세요.

데이터 표시 및 조작

대부분 앱은 데이터베이스, XML 또는 JSON 파일, 웹 서비스 또는 기타 데이터 소스의 데이터를 표시해야 합니다. Windows Forms는 각 데이터 조각이 해당 셀을 사용하도록 이러한 표 형식 데이터를 기존의 행과 열 형식으로 표시하기 위해 DataGridView 컨트롤이라는 유연한 컨트롤을 제공합니다. DataGridView를 사용하는 경우 다른 기능 중에서도 개별 셀의 모양을 사용자 지정하고, 임의의 행과 열을 제자리에 잠그고, 셀 안에 복잡한 컨트롤을 표시할 수 있습니다.

네트워크를 통해 데이터 소스에 연결하는 것은 Windows Forms에서 간단한 작업입니다. BindingSource 구성 요소는 데이터 소스에 대한 연결을 나타내며 데이터를 컨트롤에 바인딩하고, 이전 및 다음 레코드로 이동하고, 레코드를 편집하고, 변경 내용을 다시 원래 소스에 저장하기 위한 메서드를 공개합니다. BindingNavigator 컨트롤은 BindingSource 구성 요소를 통해 사용자가 레코드를 탐색하기 위한 간단한 인터페이스를 제공합니다.

Visual Studio에서 데이터 소스 창을 통해 데이터 바인딩된 컨트롤을 쉽게 만들 수 있습니다. 창에는 데이터베이스, 웹 서비스, 개체와 같은 프로젝트의 데이터 소스가 표시됩니다. 이 창에서 프로젝트의 폼으로 항목을 끌어 데이터 바인딩된 컨트롤을 만들 수 있습니다. 데이터 소스 창에서 기존 컨트롤로 개체를 끌어 기존 컨트롤을 데이터에 바인딩할 수도 있습니다.

Windows Forms에서 관리할 수 있는 다른 형식의 데이터 바인딩은 설정입니다. 대부분 앱은 마지막으로 알려진 양식 크기와 같은 런타임 상태에 관한 일부 정보를 유지하고 저장된 파일의 기본 위치와 같은 사용자 기본 설정 데이터를 유지해야 합니다. 애플리케이션 설정 기능은 클라이언트 컴퓨터에 두 유형의 설정을 모두 쉽게 저장할 수 있는 방법을 제공하여 이러한 요구 사항을 충족합니다. Visual Studio 또는 코드 편집기를 사용하여 해당 설정을 정의하면 설정이 XML로 유지되며 런타임에 자동으로 다시 메모리로 읽어옵니다.

클라이언트 컴퓨터에 앱 배포

앱을 작성한 후 해당 클라이언트 컴퓨터에 설치하고 실행할 수 있도록 사용자에게 앱을 보내야 합니다. ClickOnce 기술을 사용하는 경우 Visual Studio 내에서 마우스만 몇 번 클릭하여 앱을 배포하고 웹에서 해당 앱을 가리키는 URL을 사용자에게 제공할 수 있습니다. ClickOnce는 앱의 모든 요소와 종속성을 관리하고 클라이언트 컴퓨터에 앱이 올바르게 설치되었는지 확인합니다.

사용자가 네트워크에 연결된 경우에만 실행되거나 온라인 및 오프라인 둘 다에서 실행되도록 ClickOnce 앱을 구성할 수 있습니다. 앱이 오프라인 작업을 지원하도록 지정하면 ClickOnce는 사용자의 시작 메뉴에 앱의 링크를 추가합니다. 그러면 사용자가 URL을 사용하지 않고도 앱을 열 수 있습니다.

앱을 업데이트하는 경우 새 배포 매니페스트와 앱의 새 복사본을 웹 서버에 게시합니다. ClickOnce는 사용 가능한 업데이트가 있는지 검색하고 사용자의 설치를 업그레이드합니다. 이전 앱을 업데이트하기 위한 사용자 지정 프로그래밍이 필요하지 않습니다.

참고 항목