다음을 통해 공유


연습: Windows Forms 도구 상자 컨트롤 만들기

포함 된 Windows Forms 도구 상자 컨트롤 템플릿은 Visual Studio 2010 SDK 에 자동으로 추가 되는 컨트롤을 만들 수 있습니다의 도구 상자 확장 설치 되어 있습니다. 이 연습에서는 템플릿을 사용 하 여 다른 사용자에 게 배포할 수 있습니다 카운터 컨트롤을 만드는 방법을 보여 줍니다.

사전 요구 사항

이 연습을 완료 하려면 설치 해야 해당 Visual Studio 2010 SDK.

참고

Visual Studio SDK에 대 한 자세한 내용은 참조 하십시오. Visual Studio 개요를 확장합니다..Visual Studio SDK를 다운로드 하는 방법를 참조 하십시오. Visual Studio 확장성 개발자 센터 MSDN 웹 사이트에서.

Visual Studio Windows Forms 도구 상자 컨트롤 템플릿 찾기

Windows Forms 도구 상자 컨트롤 템플릿을 사용할 수 있는 새 프로젝트 대화 상자에서 설치 되어 있는 템플릿, 이러한 위치에:

  • Visual Basic, 확장성. 언어 프로젝트의 Visual Basic입니다.

  • C#, 확장성. 언어 프로젝트의 C#입니다.

Windows Forms 도구 상자 컨트롤 프로젝트 만들기

Windows Forms 도구 상자 컨트롤 템플릿 정의 되지 않은 사용자가 컨트롤을 만들고 모든 컨트롤에 추가 하는 데 필요한 기능을 제공는 도구.

프로젝트를 만들려면

  1. 파일 메뉴에서 새로 만들기를 클릭한 다음 프로젝트를 클릭합니다.

  2. 에 있는 새 프로젝트 대화 상자에서 설치 되어 있는 템플릿, 원하는 프로그래밍 언어에 대 한 노드를 확장 하 고 선택 확장성. 프로젝트 형식 목록에서 선택한 Windows Forms 도구 상자 제어.

  3. 에 있는 이름 상자에서 프로젝트에 사용할 이름을 입력 합니다. (이 연습에서는 이름을 사용 하 여 카운터입니다.) 확인을 클릭합니다.

    이 사용자 정의 컨트롤에 컨트롤에 배치 하는 특성을 포함 하는 솔루션을 만듭니다의 도구 상자, 및 있는 VSIX에 대 한 배포 매니페스트. 이름 솔루션의 이름 및 네임 스페이스, 이름 상자의 설정 되지만 나타나는 컨트롤의 이름을 설정 하지 않습니다는 도구. 이 연습의 뒷부분에서 설정 합니다.

컨트롤에 대 한 사용자 인터페이스 구축

카운터 컨트롤에 자식 컨트롤을 두 개 필요:는 Label 의 현재 수를 표시 하 고는 Button 카운트를 0으로 다시 설정 합니다. 호출자에 게 프로그래밍 방식으로 카운터를 증가 시키는 때문에 자식 컨트롤이 필요 합니다.

사용자 인터페이스를 구축할 수

  1. 솔루션 탐색기, ToolboxControl.cs 디자이너에서 열려면 두 번 클릭 합니다.

  2. 도구 상자, 드래그를 레이블 컨트롤을 디자인 화면에.

  3. 150 X 50 픽셀로, 사용자 정의 컨트롤의 크기를 조정 하 고 단추에 50 x 20 픽셀의 크기를 조정 합니다.

  4. 속성이 창 디자인 화면에서 컨트롤에 대해 다음 값을 설정 합니다.

    컨트롤

    Property

    레이블 1

    Text

    ""

    Button1

    Name

    btnReset

    Button1

    Text

    다시 설정

사용자 정의 컨트롤 코드 작성

카운터 컨트롤 증가 때마다 발생 하는 이벤트 카운터를 증분 하는 메서드를 노출 합니다는 다시 설정 단추와 세 가지 속성의 현재 수 및 표시 텍스트를 표시 또는 숨기기 여부를 저장 하는 다시 단추. ProvideTolboxControl 속성에서 결정은 도구 상자 의 카운터 컨트롤이 표시 됩니다.

사용자 정의 컨트롤 코드를

  1. 코드 창에서 폼의 load 이벤트 처리기를 두 번 클릭 합니다.

  2. 위의 이벤트 처리기에서 다음 예제와 같이 카운터 값 및 표시 텍스트를 저장 하는 문자열을 저장 하는 정수를 만듭니다.

    int currentValue;
    string displayText;
    
  3. 다음 선언을 public 속성을 만듭니다.

    public int Value {
        get { return currentValue; } 
        }
    
    public string Message {
        get { return displayText; }
        set { displayText = value; }
    }
    
    public bool ShowReset {
        get { return btnReset.Visible; }
        set { btnReset.Visible = value; }
    }
    

    호출자에 게 이러한 속성을 가져오고 설정 하는 카운터의 표시 텍스트를 표시 하거나 숨기려면 액세스할 수 있는 다시 설정 단추. 호출자가 읽기 전용의 현재 값을 확인할 수 있습니다 Value 않지만 속성을 설정할 수 없습니다 값 직접 합니다.

  4. 다음 코드를 삽입 Load 컨트롤에 대 한 이벤트.

    private void ToolboxControl_Load(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = Message + Value;
    }
    

    레이블 텍스트를 설정에서 Load 이벤트 대상 속성의 값을 적용 하기 전에 로드할 수 있습니다. 레이블 텍스트는 생성자에서 설정에서 빈 레이블이 될 수 있습니다.

  5. 이 카운터를 증가 시키기 위해 다음 공용 메서드를 만듭니다.

    public void Increment()
    {
        currentValue++;
        label1.Text = displayText + Value;
        Incremented(this, EventArgs.Empty);
    }
    
  6. 추가 선언에는 Incremented 이벤트.

    public event EventHandler Incremented;
    

    호출자에 게 카운터 값의 변경에 응답 하려면이 이벤트에 처리기를 추가할 수 있습니다.

  7. 리턴 디자인 보기 두 번 클릭 합니다는 다시 설정 단추를 생성 하는 btnReset_Click 이벤트 처리기에 다음과 같이 입력 하 고.

    private void btnReset_Click(object sender, EventArgs e)
    {
        currentValue = 0;
        label1.Text = displayText + Value;
    }
    
  8. 클래스 정의에서 클래스 이름을 마우스 오른쪽 단추로 클릭 하 고 클릭 리팩터링를 클릭 이름 바꾸기, 다음 클래스의 이름을 변경 하 고 카운터. 에 표시 되는 이름입니다 있는 도구.

  9. 클래스 정의 바로 위에는 ProvideToolboxControl 특성 선언, 값을 첫 번째 매개 변수에서 변경 "Counter" 에 "General". 이 컨트롤에서 호스팅하는 항목 그룹의 이름을 설정 하는 도구.

    다음 예제는 ProvideToolboxControl 특성 및 조정 된 클래스 정의입니다.

    [ProvideToolboxControl("General", false)]
    public partial class Counter : UserControl
    

    다음 예제에서는 완료 된 사용자 정의 컨트롤에 대 한 코드를 보여 줍니다.

    using System;
    using System.Windows.Forms;
    
    namespace Counter
    {
        [ProvideToolboxControl("General", false)]
        public partial class Counter : UserControl
        {
            public Counter()
            {
                InitializeComponent();
            }
    
            private void btnReset_Click(object sender, EventArgs e)
            {
                currentValue = 0;
                label1.Text = displayText + Value;
            }
    
            int currentValue;
            string displayText;
    
            public int Value {
                get { return currentValue; } 
                }
    
            public string Message {
                get { return displayText; }
                set { displayText = value; }
            }
    
            public bool ShowReset {
                get { return btnReset.Visible; }
                set { btnReset.Visible = value; }
            }
    
            private void ToolboxControl_Load(object sender, EventArgs e)
            {
                currentValue = 0;
                label1.Text = Message + Value;
            }
    
            public void Increment()
            {
                currentValue++;
                label1.Text = displayText + Value;
                Incremented(this, EventArgs.Empty);
            }
    
            public event EventHandler Incremented;
        }
    }
    

컨트롤 테스트

테스트 하는 도구 상자 제어, 먼저 개발 환경에서 테스트 하 고 컴파일된 응용 프로그램을 테스트 합니다.

컨트롤을 테스트하려면

  1. F5 키를 누릅니다.

    이 프로젝트를 작성 하 고 컨트롤 설치 되어 Visual Studio 두 번째 인스턴스를 엽니다.

  2. Visual Studio 새 인스턴스를 Windows Forms 프로젝트를 만듭니다.

  3. 솔루션 탐색기에서 Form1.cs 디자이너에서 열려면 두 번 클릭 합니다.

  4. 도구 상자의 카운터 컨트롤에 표시 해야 합니다는 일반 섹션입니다.

  5. 드래그를 카운터 폼에 제어 하 고 선택 합니다. Value, Message, 및 ShowReset 속성에 표시 됩니다는 속성 와 함께 상속 되는 속성 창에서 UserControl.

  6. 설정에서 Message 속성을 개수:.

  7. 드래그를 Button 폼에 제어 하 고 단추의 이름 및 텍스트 속성 설정 테스트.

  8. 코드 보기에서 form1.cs를 열고 클릭 처리기를 만들 해당 단추를 두 번 클릭 합니다.

  9. 클릭 처리기를 호출 합니다. counter1.Increment().

  10. 생성자 함수를 호출 하면 InitializeComponent, 형식 Counter1.Incremented = 및 TAB 키를 두 번 누릅니다.

    Visual Studio 폼 수준 처리기를 생성 하는 Counter1.Incremented 이벤트입니다.

  11. 강조 표시는 Throw 이벤트 처리기에서 형식 문을 사서함을, 다음 사서함을 코드 조각에서 생성 하는 메시지 상자 두 번 TAB 키를 누릅니다.

  12. 다음 줄에 다음을 추가 if/else 블록의 표시 여부를 설정 하는 다시 단추.

    if (counter1.Value < 5) counter1.ShowReset = false;
    else counter1.ShowReset = true;
    
  13. F5 키를 누릅니다.

    폼이 열립니다. 해당 카운터 다음 텍스트 컨트롤에 표시 됩니다.

    개수: 0

  14. 테스트를 클릭합니다.

    카운터 증가 및 Visual Studio 메시지 상자를 표시 합니다.

  15. 메시지 상자를 닫습니다.

    해당 다시 단추가 사라집니다.

  16. 클릭 테스트 카운터에 도달할 때까지 5, 및 다음 메시지 상자를 닫습니다.

    다시 re-appears 단추.

  17. 다시 설정을 클릭합니다.

    카운터를 다시 설정 하려면 0.

다음 단계

강력한는 도구 상자 컨트롤을 Visual Studio 라는 파일을 만듭니다 프로젝트 이름.vsix 프로젝트의 \bin\debug\ 폴더에 있습니다. 네트워크 또는 웹 사이트에.vsix 파일을 업로드 하 여 컨트롤을 배포할 수 있습니다. 사용자.vsix 파일을 열 때 컨트롤을 설치 하 고 Visual Studio 추가 도구 는 사용자의 컴퓨터에. 또는.vsix 파일을 업로드할 수 있는 Visual Studio 갤러리 웹 사이트에서 검색 하 여 찾을 수 있습니다. 사용자는 확장 관리자.

참고 항목

작업

연습: WPF 도구 상자 컨트롤 만들기

개념

Windows Forms 컨트롤 개발 기본 사항

기타 리소스

도구 상자 (Visual Studio SDK)

사용자 인터페이스