Share via


연습: 단순 데이터 바인딩을 지원하는 Windows Forms 사용자 정의 컨트롤 만들기

Windows 응용 프로그램에서 폼에 데이터를 표시할 때 도구 상자에서 기존 컨트롤을 선택하거나, 응용 프로그램에 표준 컨트롤에서 사용할 수 없는 기능이 필요한 경우 사용자 정의 컨트롤을 제작할 수 있습니다. 이 연습에서는 DefaultBindingPropertyAttribute를 구현하는 컨트롤을 만드는 방법을 보여 줍니다. DefaultBindingPropertyAttribute를 구현하는 컨트롤은 데이터에 바인딩될 수 있는 하나의 속성을 포함할 수 있습니다. 이러한 컨트롤은 TextBoxCheckBox와 유사합니다.

컨트롤 제작에 대한 자세한 내용은 디자인할 때 Windows Forms 컨트롤 개발을 참조하십시오.

데이터 바인딩 시나리오에서 사용할 컨트롤을 제작할 때 다음 데이터 바인딩 특성 중 하나를 구현해야 합니다.

데이터 바인딩 특성 사용

TextBox와 같이 데이터의 단일 열(또는 속성)을 표시하는 단순 컨트롤에서 DefaultBindingPropertyAttribute를 구현합니다. 이 프로세스는 이 연습 페이지에 설명되어 있습니다.

DataGridView와 같이 데이터의 목록(또는 테이블)을 표시하는 컨트롤에서 ComplexBindingPropertiesAttribute를 구현합니다. 자세한 내용은 연습: 복합 데이터 바인딩을 지원하는 Windows Forms 사용자 정의 컨트롤 만들기를 참조하십시오.

ComboBox와 같이 데이터의 목록(또는 테이블)뿐만 아니라 단일 열이나 속성도 표시해야 하는 컨트롤에서 LookupBindingPropertiesAttribute를 구현합니다. 자세한 내용은 연습: 조회 데이터 바인딩을 지원하는 Windows Forms 사용자 정의 컨트롤 만들기를 참조하십시오.

이 연습에서는 테이블의 단일 열에서 데이터를 표시하는 간단한 컨트롤을 만듭니다. 이 예제에서는 Northwind 샘플 데이터베이스에서 Customers 테이블의 Phone 열을 사용합니다. 간단한 사용자 정의 컨트롤은 MaskedTextBox를 사용하고 마스크를 전화 번호로 설정하여 고객의 전화 번호를 표준 전화 번호 형식으로 표시합니다.

이 연습을 통해 다음과 같은 작업 방법을 배웁니다.

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

  • 프로젝트에 새 사용자 정의 컨트롤을 추가합니다.

  • 사용자 정의 컨트롤을 시각적으로 디자인합니다.

  • DefaultBindingProperty 특성을 구현합니다.

  • 데이터 소스 구성 마법사를 사용하여 데이터 집합을 만듭니다.

  • 데이터 소스 창의 Phone 열을 설정하여 새 컨트롤을 사용합니다.

  • 폼을 만들어 새 컨트롤에서 데이터를 표시합니다.

사전 요구 사항

이 연습을 완료하려면 다음과 같은 요건이 필요합니다.

Windows 응용 프로그램 만들기

첫 단계에서는 Windows 응용 프로그램을 만듭니다.

새 Windows 프로젝트를 만들려면

  1. Visual Studio의 파일 메뉴에서 새 프로젝트를 만듭니다.

  2. 프로젝트 이름을 SimpleControlWalkthrough로 지정합니다.

  3. Windows 응용 프로그램을 선택하고 확인을 클릭합니다. 자세한 내용은 Windows 기반 응용 프로그램 만들기를 참조하십시오.

    SimpleControlWalkthrough 프로젝트가 만들어져 솔루션 탐색기에 추가됩니다.

프로젝트에 사용자 정의 컨트롤 추가

이 연습에서는 사용자 정의 컨트롤에서 간단한 데이터 바인딩 가능 컨트롤을 만들어 SimpleControlWalkthrough 프로젝트에 사용자 정의 컨트롤 항목을 추가합니다.

프로젝트에 사용자 정의 컨트롤을 추가하려면

  1. 프로젝트 메뉴에서 사용자 정의 컨트롤 추가를 선택합니다.

  2. 이름 영역에 PhoneNumberBox를 입력한 다음 추가를 클릭합니다.

    PhoneNumberBox 컨트롤이 솔루션 탐색기에 추가되고 디자이너에서 열립니다.

PhoneNumberBox 컨트롤 디자인

이 연습에서는 기존 MaskedTextBox를 확장하여 PhoneNumberBox 컨트롤을 만듭니다.

PhoneNumberBox 컨트롤을 디자인하려면

  1. MaskedTextBox도구 상자에서 사용자 정의 컨트롤의 디자인 화면으로 끌어 놓습니다.

  2. 끌어 온 MaskedTextBox에서 스마트 태그를 선택한 다음 마스크 설정을 선택합니다.

  3. 입력 마스크 대화 상자에서 전화 번호를 선택한 다음 확인을 클릭하여 마스크를 설정합니다.

필요한 데이터 바인딩 특성 추가

데이터 바인딩을 지원하는 간단한 컨트롤의 경우 DefaultBindingPropertyAttribute를 구현합니다.

DefaultBindingProperty 특성을 구현하려면

  1. PhoneNumberBox 컨트롤을 코드 뷰로 전환합니다. 보기 메뉴에서 코드를 선택합니다.

  2. PhoneNumberBox에서 코드를 다음과 같이 바꿉니다.

    <System.ComponentModel.DefaultBindingProperty("PhoneNumber")>
    Public Class PhoneNumberBox
    
        Public Property PhoneNumber() As String
            Get
                Return MaskedTextBox1.Text
            End Get
            Set(ByVal value As String)
                MaskedTextBox1.Text = value
            End Set
        End Property
    End Class
    
    using System.Windows.Forms;
    
    namespace CS
    {
        [System.ComponentModel.DefaultBindingProperty("PhoneNumber")]
        public partial class PhoneNumberBox : UserControl
        {
            public string PhoneNumber
            {
                get{ return maskedTextBox1.Text; }
                set{ maskedTextBox1.Text = value; }
            }
    
            public PhoneNumberBox()
            {
                InitializeComponent();
            }
        }
    }
    
  3. 빌드 메뉴에서 솔루션 빌드를 선택합니다.

데이터베이스에서 데이터 소스 만들기

이 단계에서는 Northwind 샘플 데이터베이스의 Customers 테이블을 기반으로 데이터 소스 구성 마법사를 사용하여 데이터 소스를 만듭니다. 연결을 만들려면 Northwind 샘플 데이터베이스에 액세스할 수 있는 권한이 있어야 합니다. Northwind 샘플 데이터베이스 설치에 대한 자세한 내용은 방법: 샘플 데이터베이스 설치를 참조하십시오.

데이터 소스를 만들려면

  1. 데이터 메뉴에서 데이터 소스 표시를 클릭합니다.

  2. 데이터 소스 창에서 새 데이터 소스 추가를 선택하여 데이터 소스 구성 마법사를 시작합니다.

  3. 데이터 소스 형식 선택 페이지에서 데이터베이스를 선택하고 다음을 클릭합니다.

  4. 데이터 연결 선택 페이지에서 다음 중 하나를 수행합니다.

    • Northwind 샘플 데이터베이스에 대한 데이터 연결이 드롭다운 목록에 표시되면 해당 연결을 선택합니다.

      Or

    • 새 연결을 선택하여 연결 추가/수정 대화 상자를 시작합니다. 자세한 내용은 연결 추가/수정 대화 상자(일반)를 참조하십시오.

  5. 데이터베이스에 암호가 필요하면 중요한 데이터를 포함하는 옵션을 선택하고 다음을 클릭합니다.

  6. 응용 프로그램 구성 파일에 연결 문자열 저장 페이지에서 다음을 클릭합니다.

  7. 데이터베이스 개체 선택 페이지에서 테이블 노드를 확장합니다.

  8. Customers 테이블을 선택한 다음 마침을 클릭합니다.

    NorthwindDataSet이 프로젝트에 추가되고 Customers 테이블이 데이터 소스 창에 나타납니다.

PhoneNumberBox 컨트롤 사용을 위한 Phone 열 설정

데이터 소스 창 내에서 항목을 폼에 끌기 전에 만들어질 컨트롤을 설정할 수 있습니다.

PhoneNumberBox 컨트롤에 바인딩되도록 Phone 열을 설정하려면

  1. 디자이너에서 Form1을 엽니다.

  2. 데이터 소스 창에서 Customers 노드를 확장합니다.

  3. Customers 노드에서 드롭다운 화살표를 클릭한 다음 컨트롤 목록에서 자세히를 선택합니다.

  4. Phone 열에서 드롭다운 화살표를 클릭한 다음 사용자 지정을 선택합니다.

  5. 데이터 UI 사용자 지정 옵션 대화 상자에 있는 연결된 컨트롤 목록에서 PhoneNumberBox를 선택합니다.

  6. Phone 열에서 드롭다운 화살표를 클릭한 다음 PhoneNumberBox를 선택합니다.

폼에 컨트롤 추가

데이터 소스 창에서 폼으로 항목을 끌어 와 데이터 바인딩된 컨트롤을 만들 수 있습니다.

폼에 데이터 바인딩된 컨트롤을 만들려면

  • 데이터 소스 창에서 폼으로 주 Customers 노드를 끌어 놓고 PhoneNumberBox 컨트롤을 사용하여 Phone 열의 데이터를 표시하는지 확인합니다.

    레코드 탐색에 사용되는 도구 스트립(BindingNavigator)과 설명 레이블이 있는 데이터 바인딩된 컨트롤이 폼에 나타납니다. NorthwindDataSet, CustomersTableAdapter, BindingSourceBindingNavigator가 구성 요소 트레이에 나타납니다.

응용 프로그램 실행

응용 프로그램을 실행하려면

  • F5 키를 눌러 응용 프로그램을 실행합니다.

다음 단계

응용 프로그램 요구 사항에 따라 데이터 바인딩을 지원하는 컨트롤을 만든 후 몇 단계를 더 수행해야 할 수도 있습니다. 다음으로 수행할 일반적인 단계는 다음과 같습니다.

참고 항목

작업

방법: 데이터 소스 창에서 끌어 올 때 만들 컨트롤 설정

개념

Visual Studio에서 데이터에 Windows Forms 컨트롤 바인딩

Visual Studio에서 데이터에 컨트롤 바인딩

기타 리소스

Visual Studio의 데이터 응용 프로그램 개요

Visual Studio에서 데이터에 연결

데이터를 받기 위해 응용 프로그램 준비

데이터를 응용 프로그램으로 페치

응용 프로그램에서 데이터 편집

데이터 유효성 검사

데이터 저장