Windows용 데스크톱 클라이언트 앱을 만드는 UI 프레임워크인 Windows Forms에 관한 데스크톱 가이드를 시작합니다. Windows Forms 개발 플랫폼은 컨트롤, 그래픽, 데이터 바인딩, 사용자 입력을 포함하여 다양한 앱 개발 기능 세트를 지원합니다. Windows Forms는 Windows Forms 앱을 쉽게 만들 수 있는 Visual Studio의 끌어서 놓기 비주얼 디자이너를 제공합니다.
Windows Forms에는 다음 두 가지 구현이 있습니다.
GitHub에서 호스트되는 오픈 소스 구현.
이 버전은 .NET에서 실행됩니다.
최신 버전은 Visual Studio 2022 버전 17.12를 사용하는 .NET용 Windows Forms 9입니다.
Visual Studio 2022, Visual Studio 2019, Visual Studio 2017에서 지원되는 .NET Framework 4 구현.
.NET Framework 4는 Windows 전용 .NET 버전이며 Windows 운영 체제 구성 요소로 간주합니다. 이 버전의 Windows Forms는 .NET Framework와 함께 배포됩니다.
소개
Windows Forms는 Windows 데스크톱 앱을 빌드하기 위한 UI 프레임워크입니다. 이는 Visual Studio에서 제공되는 비주얼 디자이너를 기반으로 데스크톱 앱을 만드는 생산성이 가장 높은 방법 중 하나를 제공합니다. 시각적 컨트롤의 끌어서 놓기 배치와 같은 기능을 통해 데스크톱 앱을 쉽게 빌드할 수 있습니다.
Windows Forms를 사용하여 오프라인으로 또는 인터넷에 연결된 동안 쉽게 배포, 업데이트, 작업할 수 있는 풍부한 앱을 그래픽 방식으로 개발합니다. Windows Forms 앱은 앱이 실행되고 있는 컴퓨터의 로컬 하드웨어 및 파일 시스템에 액세스할 수 있습니다.
Windows Forms 앱을 만드는 방법을 알아보려면 Tutorial: Create a new WinForms app(자습서: 새 WinForms 앱 만들기)을 참조하세요.
풍부한 대화형 사용자 인터페이스 빌드
Windows Forms는 파일 시스템 읽기 및 쓰기와 같은 일반적인 앱 작업을 간소화하는 관리형 라이브러리 세트인 .NET의 UI 기술입니다. Visual Studio와 같은 개발 환경을 사용하는 경우 정보를 표시하고, 사용자 입력을 요청하고, 네트워크를 통해 원격 컴퓨터와 통신하는 Windows Forms 스마트 클라이언트 앱을 만들 수 있습니다.
Windows Forms에서 폼은 정보를 사용자에게 표시하는 비주얼 화면입니다. 일반적으로 양식에 컨트롤을 추가하고 마우스 클릭이나 키 누름과 같은 사용자 동작에 대한 응답을 개발하여 Windows Forms 앱을 빌드합니다. ‘컨트롤’은 데이터를 표시하거나 데이터 입력을 수락하는 고유한 UI 요소입니다.
사용자가 폼이나 컨트롤 중 하나에 작업을 수행하면 이벤트가 생성됩니다. 앱은 코드로 이러한 이벤트에 반응하고 이벤트가 발생하면 처리합니다. 자세한 내용은 이벤트 개요를 참조하세요.
Windows Forms에는 텍스트 상자, 단추, 드롭다운 상자, 라디오 단추 및 웹 페이지를 표시하는 컨트롤 등 양식에 추가할 수 있는 다양한 컨트롤이 포함되어 있습니다. 폼에서 사용할 수 있는 모든 컨트롤의 목록은 Windows Forms에서 사용할 수 있는 컨트롤을 참조하세요. 기존 컨트롤이 요구 사항을 충족하지 않는 경우 Windows Forms는 클래스를 사용하여 UserControl 사용자 지정 컨트롤 만들기도 지원합니다. 자세한 내용은 사용자 컨트롤을 만드는 방법을 참조하세요.
Windows Forms에는 Microsoft Office와 같은 고급 앱의 기능을 에뮬레이트하는 풍부한 UI 컨트롤이 있습니다. ToolStrip 및 MenuStrip 컨트롤을 사용하는 경우 텍스트와 이미지를 포함하고, 하위 메뉴를 표시하며, 텍스트 상자 및 콤보 상자와 같은 기타 컨트롤을 호스트하는 도구 모음과 메뉴를 만들 수 있습니다.
Visual Studio에서 끌어서 놓기 Windows Forms 디자이너를 통해 Windows Forms 앱을 쉽게 만들 수 있습니다. 커서를 사용하여 컨트롤을 선택하고 양식에서 원하는 위치에 배치하면 됩니다. 디자이너는 컨트롤을 정렬하는 번거로움을 제거하기 위해 그리드라인 및 스냅 라인과 같은 도구를 제공합니다. FlowLayoutPanel, TableLayoutPanel, SplitContainer 컨트롤을 사용하여 더 짧은 시간 안에 고급 양식 레이아웃을 만들 수 있습니다.
끝으로, 고유한 사용자 지정 UI 요소를 만들어야 하는 경우 System.Drawing 네임스페이스에는 선, 원 및 기타 도형을 폼에 직접 렌더링하는 다양한 클래스가 포함되어 있습니다.
.NET Framework만
Windows Forms 컨트롤은 애플리케이션 도메인 간에 마샬링되도록 설계되어 있지 않습니다. 이런 이유로 Microsoft는 MarshalByRefObject의 Control 기본 형식이 가능한 것처럼 표시해도 AppDomain 경계를 넘어서 Windows Forms 컨트롤을 전달하는 기능을 지원하지 않습니다. 애플리케이션 도메인 경계를 넘어서 Windows Forms 컨트롤이 전달되지 않는 한 여러 개의 애플리케이션 도메인을 가진 Windows Forms 애플리케이션이 지원됩니다.
양식 및 컨트롤 만들기
이러한 기능을 사용하는 방법에 대한 단계별 정보는 다음 도움말 항목을 참조하세요.
데이터 표시 및 조작
대부분 앱은 데이터베이스, XML 또는 JSON 파일, 웹 서비스 또는 기타 데이터 소스의 데이터를 표시해야 합니다. Windows Forms는 각 데이터 조각이 해당 셀을 사용하도록 이러한 표 형식 데이터를 기존의 행과 열 형식으로 표시하기 위해 DataGridView 컨트롤이라는 유연한 컨트롤을 제공합니다. DataGridView를 사용하는 경우 다른 기능 중에서도 개별 셀의 모양을 사용자 지정하고, 임의의 행과 열을 제자리에 잠그고, 셀 안에 복잡한 컨트롤을 표시할 수 있습니다.
네트워크를 통해 데이터 소스에 연결하는 것은 Windows Forms에서 간단한 작업입니다. BindingSource 구성 요소는 데이터 소스에 대한 연결을 나타내며 데이터를 컨트롤에 바인딩하고, 이전 및 다음 레코드로 이동하고, 레코드를 편집하고, 변경 내용을 다시 원래 소스에 저장하기 위한 메서드를 공개합니다. BindingNavigator 컨트롤은 BindingSource 구성 요소를 통해 사용자가 레코드를 탐색하기 위한 간단한 인터페이스를 제공합니다.
Visual Studio에서 데이터 소스 창을 통해 데이터 바인딩된 컨트롤을 쉽게 만들 수 있습니다. 창에는 데이터베이스, 웹 서비스, 개체와 같은 프로젝트의 데이터 소스가 표시됩니다. 이 창에서 프로젝트의 폼으로 항목을 끌어 데이터 바인딩된 컨트롤을 만들 수 있습니다. 또한 데이터 소스 창에서 개체를 기존 컨트롤로 끌어와 데이터에 바인딩할 수도 있습니다.
Windows Forms에서 관리할 수 있는 다른 형식의 데이터 바인딩은 설정입니다. 대부분 앱은 마지막으로 알려진 양식 크기와 같은 런타임 상태에 관한 일부 정보를 유지하고 저장된 파일의 기본 위치와 같은 사용자 기본 설정 데이터를 유지해야 합니다. 애플리케이션 설정 기능은 클라이언트 컴퓨터에 두 유형의 설정을 모두 쉽게 저장할 수 있는 방법을 제공하여 이러한 요구 사항을 충족합니다. Visual Studio 또는 코드 편집기를 사용하여 해당 설정을 정의하면 설정이 XML로 유지되며 런타임에 자동으로 다시 메모리로 읽어옵니다.
관련 콘텐츠
.NET Desktop feedback