산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

예제가 있는 C# Windows Forms 응용 프로그램 자습서


지금까지 C#을 사용하여 콘솔 기반 애플리케이션을 만드는 방법을 살펴보았습니다. 그러나 실제 시나리오에서 팀은 일반적으로 Visual Studio와 C#을 사용하여 Windows Forms 또는 웹 기반 응용 프로그램을 만듭니다.

Windows 양식 응용 프로그램은 컴퓨터에서 실행되도록 설계된 응용 프로그램입니다. 웹 응용 프로그램이 되기 때문에 웹 브라우저에서 실행되지 않습니다.

이 자습서에서는 Windows 기반 응용 프로그램을 만드는 방법에 중점을 둘 것입니다. 또한 C# Windows 응용 프로그램의 다양한 요소를 사용하는 방법에 대한 몇 가지 기본 사항을 배웁니다.

이 Windows 자습서에서는 다음을 배우게 됩니다.

Windows Forms 기본 사항

Windows Forms 응용 프로그램은 데스크톱 컴퓨터에서 실행되는 응용 프로그램입니다. Windows Forms 애플리케이션에는 일반적으로 레이블, 텍스트 상자, 목록 상자 등과 같은 컨트롤 모음이 있습니다.

아래는 간단한 Windows Form 애플리케이션 C#의 예입니다. 사용자가 액세스할 수 있는 간단한 로그인 화면을 보여줍니다. 사용자는 필요한 자격 증명을 입력한 다음 로그인 버튼을 클릭하여 계속 진행합니다.

따라서 위의 애플리케이션에서 사용할 수 있는 컨트롤의 예

  1. 이것은 일반적으로 인접한 컨트롤을 설명하는 데 사용되는 레이블 컨트롤의 모음입니다. 따라서 우리의 경우에는 2개의 텍스트 상자가 있으며 레이블은 사용자에게 하나의 텍스트 상자는 사용자 이름을 입력하고 다른 하나는 비밀번호를 입력하기 위한 것임을 알리는 데 사용됩니다.
  2. 2개의 텍스트 상자는 사용자가 입력할 사용자 이름과 비밀번호를 저장하는 데 사용됩니다.
  3. 마지막으로 버튼 컨트롤이 있습니다. 버튼 컨트롤에는 일반적으로 특정 작업 세트를 수행하기 위해 일부 코드가 첨부되어 있습니다. 예를 들어 위의 경우 버튼이 사용자가 입력한 사용자 이름과 비밀번호를 확인하는 작업을 수행하도록 할 수 있습니다.

C# Hello World

이제 Visual Studio에서 간단한 'hello world' 애플리케이션을 구현하는 방법의 예를 살펴보겠습니다. 이를 위해 아래에 언급된 단계를 구현해야 합니다.

1단계) 첫 번째 단계는 Visual Studio에서 새 프로젝트를 만드는 것입니다. Visual Studio를 시작한 후 New->Project.

메뉴 옵션을 선택해야 합니다.

2단계) 다음 단계는 프로젝트 유형을 Windows Forms 애플리케이션으로 선택하는 것입니다. 여기에 우리 프로젝트의 이름과 위치도 언급해야 합니다.

  1. 프로젝트 대화 상자에서 Visual Studio에서 다양한 유형의 프로젝트를 생성하기 위한 다양한 옵션을 볼 수 있습니다. 왼쪽에서 Windows 옵션을 클릭합니다.
  2. 이전 단계에서 Windows 옵션을 클릭하면 Windows Forms 응용 프로그램에 대한 옵션이 표시됩니다. 이 옵션을 클릭하세요.
  3. 응용 프로그램의 이름을 지정합니다. 우리의 경우 DemoApplication입니다. 또한 애플리케이션을 저장할 위치도 제공합니다.
  4. 마지막으로 '확인' 버튼을 클릭하여 Visual Studio에서 프로젝트를 생성하도록 합니다.

위의 단계를 수행하면 Visual Studio에서 다음과 같은 결과를 얻을 수 있습니다.

출력:-

Visual Studio에 양식 디자이너가 표시됩니다. 이 Form Designer에서 Windows Forms 애플리케이션 구축을 시작할 것입니다.

솔루션 탐색기에서 DemoApplication 솔루션도 볼 수 있습니다. 이 솔루션에는 아래 2개의 프로젝트 파일이 포함됩니다.

  1. Forms1.cs라는 양식 애플리케이션. 이 파일에는 Windows Form 애플리케이션의 모든 코드가 포함됩니다.
  2. Program.cs라는 Main 프로그램은 Visual Studio에서 새로운 애플리케이션을 생성할 때 생성되는 기본 코드 파일입니다. 이 코드에는 전체 애플리케이션의 시작 코드가 포함됩니다.

Visual Studio의 왼쪽에는 ToolBox도 표시됩니다. 도구 상자에는 Windows Forms에 추가할 수 있는 모든 컨트롤이 포함되어 있습니다. 텍스트 상자나 레이블과 같은 컨트롤은 Windows Forms에 추가할 수 있는 컨트롤의 일부일 뿐입니다.

아래는 도구 상자가 어떻게 생겼는지에 대한 스크린샷입니다.

3단계) 이 단계에서는 이제 "Hello World"를 표시할 레이블을 Form에 추가합니다. 도구 상자에서 레이블 컨트롤을 선택하고 이를 양식으로 끌어다 놓기만 하면 됩니다.

라벨을 폼에 끌어다 놓으면 아래와 같이 폼에 포함된 라벨을 볼 수 있습니다.

4단계) 다음 단계는 컨트롤의 속성으로 이동하여 텍스트를 'Hello World'로 변경하는 것입니다.

컨트롤의 속성으로 이동하려면 컨트롤을 마우스 오른쪽 버튼으로 클릭하고 속성 메뉴 옵션을 선택해야 합니다.

위의 모든 단계를 수행하고 Visual Studio에서 프로그램을 실행하면 다음과 같은 출력을 얻을 수 있습니다.

출력:-

출력에서 Windows Form이 표시되는 것을 볼 수 있습니다. 양식에 'Hello World'가 표시되는 것도 확인할 수 있습니다.

양식에 컨트롤 추가

"Hello World"를 표시하기 위해 이전 섹션에서 레이블 컨트롤을 추가할 때 양식에 컨트롤을 추가하는 방법을 이미 보았습니다.

Windows Forms에 사용할 수 있는 다른 컨트롤과 몇 가지 공통 속성을 살펴보겠습니다.

C# 예제의 Windows 양식 응용 프로그램에서 다음 기능을 가진 하나의 양식을 만듭니다.

  1. 사용자가 이름과 주소를 입력할 수 있는 기능.
  2. 사용자가 거주하는 도시를 선택하는 옵션
  3. 사용자가 성별 옵션을 입력할 수 있는 기능.
  4. 사용자가 배우고자 하는 과정을 선택하는 옵션입니다. C#과 ASP.Net 모두에 대한 선택이 있을 것입니다.

그럼 각 컨트롤을 자세히 살펴보고 위에서 언급한 기능으로 폼을 빌드하기 위해 추가해 봅시다.

그룹 상자

그룹 상자는 컨트롤을 섹션으로 논리적으로 그룹화하는 데 사용됩니다. 사람의 이름과 주소와 같은 세부 정보를 입력하기 위한 컨트롤 모음이 있는 경우를 예로 들어 보겠습니다. 이상적으로는 개인에 대한 세부 정보이므로 양식의 별도 섹션에 이러한 세부 정보가 있어야 합니다. 이를 위해 그룹 상자를 가질 수 있습니다. 아래에 표시된 예를 통해 이를 구현하는 방법을 살펴보겠습니다.

1단계) 첫 번째 단계는 아래와 같이 도구 상자에서 Groupbox 컨트롤을 Windows Form으로 드래그하는 것입니다.

2단계) 그룹박스가 추가되면 그룹박스 컨트롤을 클릭하여 속성 창으로 이동합니다. 속성 창에서 Text 속성으로 이동하여 "User Details"로 변경합니다.

위와 같이 변경하면 다음과 같은 출력이 표시됩니다.

출력:-

출력에서 Groupbox가 양식에 추가되었음을 명확하게 볼 수 있습니다. 또한 그룹 상자의 텍스트가 "User Details"로 변경된 것을 볼 수 있습니다.

레이블 컨트롤

다음은 레이블 컨트롤입니다. 레이블 컨트롤은 양식에서 사용자에게 텍스트 또는 메시지를 표시하는 데 사용됩니다. 레이블 컨트롤은 일반적으로 다른 컨트롤과 함께 사용됩니다. 일반적인 예는 텍스트 상자 컨트롤과 함께 레이블이 추가되는 경우입니다.

레이블은 텍스트 상자에 채워야 할 내용을 사용자에게 나타냅니다. 아래에 표시된 예를 통해 이를 구현하는 방법을 살펴보겠습니다. 2개의 레이블을 추가할 것입니다. 하나는 '이름'이고 다른 하나는 '주소'입니다. 이 레이블은 이후 섹션에서 추가될 텍스트 상자 컨트롤과 함께 사용됩니다.

1단계) 첫 번째 단계는 아래와 같이 도구 상자에서 레이블 컨트롤을 Windows Form으로 끌어오는 것입니다. 레이블 컨트롤을 2번 드래그하여 하나는 '이름'에, 다른 하나는 '주소'에 사용할 수 있도록 하세요.

2단계) 레이블이 추가되면 레이블 컨트롤을 클릭하여 속성 창으로 이동합니다. 속성 창에서 각 레이블 컨트롤의 Text 속성으로 이동합니다.

위와 같이 변경하면 다음과 같은 출력이 표시됩니다.

출력:-

양식에 추가된 레이블 컨트롤을 볼 수 있습니다.

텍스트 상자

텍스트 상자는 사용자가 C#의 Windows 응용 프로그램에 일부 텍스트를 입력할 수 있도록 하는 데 사용됩니다. 아래에 표시된 예를 통해 이를 구현하는 방법을 살펴보겠습니다. 양식에 2개의 텍스트 상자를 추가합니다. 하나는 이름이고 다른 하나는 사용자가 입력할 주소입니다.

1단계) 첫 번째 단계는 아래와 같이 도구 상자에서 텍스트 상자 컨트롤을 Windows Form으로 드래그하는 것입니다.

2단계) 텍스트 상자가 추가되면 텍스트 상자 컨트롤을 클릭하여 속성 창으로 이동합니다. 속성 창에서 Name 속성으로 이동하여 각 텍스트 상자에 의미 있는 이름을 추가합니다. 예를 들어, 사용자의 텍스트 상자 이름은 txtName으로, 주소의 이름은 txtAddress로 지정합니다. 나중에 보게 될 이러한 컨트롤에 추가 기능을 추가하는 것이 더 쉬워지기 때문에 컨트롤에 대한 명명 규칙과 표준을 만들어야 합니다.

위와 같이 변경하면 다음과 같은 출력이 표시됩니다.

출력:-

출력에서 텍스트 상자가 양식에 추가된 것을 명확하게 볼 수 있습니다.

목록 상자

목록 상자는 Windows 양식에 항목 목록을 표시하는 데 사용됩니다. 아래에 표시된 예를 통해 이를 구현하는 방법을 살펴보겠습니다. 일부 도시 위치를 저장하기 위해 양식에 목록 상자를 추가합니다.

1단계) 첫 번째 단계는 아래와 같이 도구 상자에서 목록 상자 컨트롤을 Windows Form으로 끌어오는 것입니다.

2단계) 목록 상자가 추가되면 목록 상자 컨트롤을 클릭하여 속성 창으로 이동합니다.

  1. 먼저 Listbox 상자 컨트롤의 속성을 변경합니다. 이 경우에는 lstCity로 변경했습니다.
  2. 항목 속성을 클릭합니다. 이렇게 하면 목록 상자에 표시할 수 있는 다른 항목을 추가할 수 있습니다. 우리의 경우 "컬렉션" 항목을 선택했습니다.
  3. 나타나는 String Collection Editor에서 도시 이름을 입력합니다. 우리의 경우 "뭄바이", "방갈로르" 및 "하이데라바드"를 입력했습니다.
  4. 마지막으로 '확인' 버튼을 클릭합니다.

위와 같이 변경하면 다음과 같은 출력이 표시됩니다.

출력:-

출력에서 목록 상자가 양식에 추가된 것을 볼 수 있습니다. 또한 목록 상자에 도시 값이 채워진 것을 볼 수 있습니다.

라디오 버튼

라디오 버튼은 사용자가 선택할 수 있는 항목 목록을 표시하는 데 사용됩니다. 아래에 표시된 예를 통해 이를 구현하는 방법을 살펴보겠습니다. 남성/여성 옵션에 대한 라디오 버튼을 추가합니다.

1단계) 첫 번째 단계는 아래와 같이 도구 상자에서 '라디오 버튼' 컨트롤을 Windows Form으로 드래그하는 것입니다.

2단계) 라디오 버튼이 추가되면 라디오 버튼 컨트롤을 클릭하여 속성 창으로 이동합니다.

  1. 먼저 두 라디오 컨트롤의 text 속성을 변경해야 합니다. 속성 창으로 이동하여 한 라디오 버튼의 텍스트를 남성으로 변경하고 다른 라디오 버튼의 텍스트를 여성으로 변경합니다.
  2. 마찬가지로 두 라디오 컨트롤의 name 속성을 변경합니다. 속성 창으로 이동하여 한 라디오 버튼의 이름을 'rdMale'로 변경하고 다른 라디오 버튼의 이름을 'rdfemale'로 변경합니다.

위와 같이 변경하면 다음과 같은 출력이 표시됩니다.

출력:-

Windows 양식에 라디오 버튼이 추가된 것을 볼 수 있습니다.

확인란

확인란은 사용자가 여러 항목을 선택할 수 있는 옵션 목록을 제공하는 데 사용됩니다. 아래에 표시된 예를 통해 이를 구현하는 방법을 살펴보겠습니다. Windows 양식에 2개의 확인란을 추가합니다. 이 확인란은 사용자가 C# 또는 ASP.Net을 배울지 여부에 대한 옵션을 제공합니다.

1단계) 첫 번째 단계는 아래와 같이 도구 상자에서 확인란 컨트롤을 Windows Form으로 드래그하는 것입니다.

2단계) 확인란이 추가되면 확인란 컨트롤을 클릭하여 속성 창으로 이동합니다.

속성 창에서

  1. 먼저 두 확인란 컨트롤의 text 속성을 변경해야 합니다. 속성 창으로 이동하여 텍스트를 C# 및 ASP.Net으로 변경합니다.
  2. 마찬가지로 두 라디오 컨트롤의 name 속성을 변경합니다. 속성 창으로 이동하여 한 확인란의 이름을 chkC로 변경하고 다른 확인란의 이름을 chkASP로 변경합니다.

위와 같이 변경하면 다음과 같은 출력이 표시됩니다.

출력:-

버튼

버튼은 사용자가 버튼을 클릭할 수 있도록 하여 양식 처리를 시작하는 데 사용됩니다. 아래에 표시된 예를 통해 이를 구현하는 방법을 살펴보겠습니다. 양식의 모든 정보를 제출하는 데 사용할 '제출'이라는 간단한 버튼을 추가합니다.

1단계) 첫 번째 단계는 아래와 같이 도구 상자에서 버튼 컨트롤을 Windows Form으로 드래그하는 것입니다.

2단계) 버튼이 추가되면 버튼 컨트롤을 클릭하여 속성 창으로 이동합니다.

  1. 먼저 버튼 컨트롤의 text 속성을 변경해야 합니다. 속성 창으로 이동하여 텍스트를 '제출'로 변경합니다.
  2. 마찬가지로 컨트롤의 name 속성을 변경합니다. 속성 창으로 이동하여 이름을 'btnSubmit'으로 변경합니다.

위와 같이 변경하면 다음과 같은 출력이 표시됩니다.

출력:-

축하합니다. 이제 첫 번째 기본 Windows Form이 준비되었습니다. 이제 다음 주제로 이동하여 컨트롤에 대한 이벤트 처리를 수행하는 방법을 살펴보겠습니다.

컨트롤을 위한 C# 이벤트 처리

Windows 양식으로 작업할 때 컨트롤에 이벤트를 추가할 수 있습니다. 이벤트는 작업이 수행될 때 발생하는 것입니다. 아마도 가장 일반적인 작업은 양식에서 버튼을 클릭하는 것입니다. C# Windows Forms에서는 폼에서 버튼을 눌렀을 때 특정 작업을 수행하는 데 사용할 수 있는 코드를 추가할 수 있습니다.

일반적으로 폼에서 버튼을 누르면 어떤 처리가 필요하다는 의미입니다.

버튼 이벤트 시나리오로 넘어가기 전에 이벤트 중 하나와 처리 방법을 살펴보겠습니다.

아래 예제는 Listbox 컨트롤에 대한 이벤트를 보여줍니다. 따라서 목록 상자 컨트롤에서 항목을 선택할 때마다 선택한 항목을 표시하는 메시지 상자가 팝업되어야 합니다. 이를 위해 다음 단계를 수행해 보겠습니다.

1단계) 양식 디자이너에서 목록 상자를 두 번 클릭합니다. 이렇게 하면 Visual Studio에서 양식에 대한 코드 파일을 자동으로 엽니다. 그리고 자동으로 코드에 이벤트 메서드를 추가합니다. 이 이벤트 메서드는 목록 상자의 항목이 선택될 때마다 트리거됩니다.

위는 폼에서 목록 상자 컨트롤을 두 번 클릭하면 Visual Studio에서 자동으로 추가되는 코드 조각입니다. 이제 목록 상자 이벤트에 필요한 기능을 추가하기 위해 이 코드 스니펫에 아래 코드 섹션을 추가해 보겠습니다.

  1. 목록 상자 컨트롤을 두 번 클릭하면 Visual Studio에서 자동으로 생성되는 이벤트 처리기 메서드입니다. 메소드 이름이나 메소드에 전달되는 매개변수의 복잡성에 대해 걱정할 필요가 없습니다.
  2. 여기서 lstCity.SelectedItem 속성을 통해 SelectedItem을 가져옵니다. lstCity는 Listbox 컨트롤의 이름이라는 것을 기억하십시오. 그런 다음 GetItemText 메서드를 사용하여 선택한 항목의 실제 값을 가져옵니다. 그런 다음 이 값을 텍스트 변수에 할당합니다.
  3. 마지막으로 MessageBox 메서드를 사용하여 텍스트 변수 값을 사용자에게 표시합니다.

위와 같이 변경하고 Visual Studio에서 프로그램을 실행하면 다음과 같은 출력이 표시됩니다.

출력:-

출력에서 목록 상자의 항목을 선택하면 메시지 상자가 팝업되는 것을 볼 수 있습니다. 이렇게 하면 목록 상자에서 선택한 항목이 표시됩니다.

이제 버튼 클릭 메서드인 최종 컨트롤을 살펴보겠습니다. 이번에도 같은 철학을 따릅니다. Forms Designer에서 버튼을 두 번 클릭하기만 하면 버튼 이벤트 핸들러에 대한 메서드가 자동으로 추가됩니다. 그런 다음 아래 코드를 추가하기만 하면 됩니다.

  1. 버튼 컨트롤을 더블 클릭하면 Visual Studio에서 자동으로 생성되는 이벤트 핸들러 메서드입니다. 메서드 이름이나 메서드에 전달되는 매개변수의 복잡성에 대해 걱정할 필요가 없습니다.
  2. 여기에서는 이름 및 주소 텍스트 상자에 입력된 값을 가져옵니다. 값은 텍스트 상자의 text 속성에서 가져올 수 있습니다. 그런 다음 값을 2개의 변수, 이름 및 주소에 적절하게 할당합니다.
  3. 마지막으로 MessageBox 메서드를 사용하여 사용자에게 이름과 주소 값을 표시합니다.

위와 같이 변경하고 Visual Studio에서 프로그램을 실행하면 다음과 같은 출력이 표시됩니다.

출력:-

  1. 먼저 이름 및 주소 필드에 값을 입력합니다.
  2. 그런 다음 제출 버튼을 클릭하세요.

제출 버튼을 클릭하면 메시지 상자가 나타나고 사용자 세부 정보 섹션에 입력한 내용이 올바르게 표시됩니다.

트리 및 PictureBox 컨트롤

우리가 볼 수 있는 2개의 추가 컨트롤이 있습니다. 하나는 '트리 컨트롤'이고 다른 하나는 '이미지 컨트롤'입니다. 이러한 제어를 구현하는 방법의 예를 살펴보겠습니다.

나무 제어

– 트리 컨트롤은 트리처럼 항목을 나열하는 데 사용됩니다. 아마도 가장 좋은 예는 Windows 탐색기 자체를 볼 때일 것입니다. Windows 탐색기의 폴더 구조는 나무와 같은 구조입니다.

아래에 표시된 예를 통해 이를 구현하는 방법을 살펴보겠습니다.

1단계) 첫 번째 단계는 아래와 같이 도구 상자에서 Tree 컨트롤을 Windows Form으로 드래그하는 것입니다.

2단계) 다음 단계는 트리 컬렉션에 노드를 추가하여 그에 따라 트리에 나타날 수 있도록 하는 것입니다. 먼저 아래의 하위 단계에 따라 트리 컬렉션에 루트 노드를 추가해 보겠습니다.

  1. 트리 보기 컨트롤의 속성 도구 상자로 이동합니다. 노드의 속성을 클릭합니다. 그러면 TreeNode 편집기가 나타납니다.
  2. TreeNode 편집기에서 루트 추가 버튼을 클릭하여 트리 컬렉션에 루트 노드를 추가합니다.
  3. 다음으로 Root 노드의 텍스트를 변경하고 텍스트를 Root로 제공하고 '확인' 버튼을 클릭합니다. 그러면 루트 노드가 추가됩니다.

3단계) 다음 단계는 트리 컬렉션에 자식 노드를 추가하는 것입니다. 아래의 하위 단계에 따라 트리 컬렉션에 자식 루트 노드를 추가해 보겠습니다.

  1. 먼저 자식 추가 버튼을 클릭합니다. 이렇게 하면 Tree 컬렉션에 자식 노드를 추가할 수 있습니다.
  2. 각 자식 노드에 대해 text 속성을 변경합니다. 이전 단계와 이 단계를 계속 반복하고 2개의 추가 노드를 추가합니다. 결국에는 위와 같이 3개의 노드가 생성되며 텍스트는 각각 Label, Button 및 Checkbox입니다.
  3. 확인 버튼 클릭

위와 같이 변경하면 다음과 같은 결과가 표시됩니다.

출력:-

양식에 추가된 트리 보기를 볼 수 있습니다. Windows Form 애플리케이션을 실행하면 루트 노드를 확장하여 목록에서 자식 노드를 볼 수 있습니다.

PictureBox 컨트롤

이 컨트롤은 Winforms C#에 이미지를 추가하는 데 사용됩니다. 아래에 표시된 예를 통해 이를 구현하는 방법을 살펴보겠습니다.

1단계) 첫 번째 단계는 아래와 같이 도구 상자에서 PictureBox 컨트롤을 C# Windows Form으로 드래그하는 것입니다.

2단계) 다음 단계는 실제로 그림 상자 컨트롤에 이미지를 첨부하는 것입니다. 아래 단계에 따라 수행할 수 있습니다.

  1. 먼저 PictureBox 컨트롤의 Image 속성을 클릭합니다. 새 창이 나타납니다.
  2. 이 창에서 가져오기 버튼을 클릭합니다. 이것은 그림 상자 컨트롤에 이미지를 첨부하는 데 사용됩니다.
  3. 그림 상자를 첨부할 이미지를 선택할 수 있는 대화 상자가 나타납니다.
  4. 확인 버튼 클릭

위와 같이 변경하면 다음과 같은 출력이 표시됩니다.

출력:-

출력에서 양식에 이미지가 표시되는 것을 볼 수 있습니다.

요약


C 언어

  1. Windows IoT 기반 GoPiGo v2
  2. 예제가 있는 C++ For 루프
  3. EXAMPLE이 있는 C++ Switch Case 문
  4. 예제를 사용한 C++ 배열 동적 할당
  5. 예제가 있는 C++ 구조체
  6. 예제가 있는 C++의 std::list
  7. C# 추상 클래스 자습서 예제:추상화란?
  8. 예제가 있는 C# 컬렉션 자습서
  9. 프로그램 예제가 있는 C 라이브러리의 calloc() 함수
  10. 예제가 있는 컬렉션의 Python 카운터