본문 바로가기
프로그래밍

[C#]사용자 정의 컨트롤 재사용 하기

by minimax95 2020. 11. 17.

이전 포스팅에서 사용자 정의 컨트롤을 이용해서 디지털시계를 만들어 보았습니다.

오늘은 재사용 가능한 사용자 정의 컨트롤(디지털 시계)를 새로운 프로젝트에서 사용하는 방법에 대해서 정리해보겠습니다.

 

먼저 우리가 만든 사용자 정의 컨트롤은 아래와 같습니다.

구현 소스 코드

public partial class MyClock : UserControl
{
    Timer mTimer = null;
    bool bCheck;

 

    public MyClock( )
    {
        InitializeComponent( );
        Init( );
    }

    private void Init( )
    {
        mTimer = new Timer();
        mTimer.Interval = 1000;

        mTimer.Tick += MTimer_Tick;

        mTimer.Start( );

    }

 

    private void MTimer_Tick(object sender, EventArgs e)

    {

        lb_Date.Text = string.Format("{0:yyyy.MM.dd(ddd)}", DateTime.Now);

        lb_AmPm.Text = string.Format("{0:tt)}", DateTime.Now);

    

        // 시계 깜빡임 효과 주기
        if (bCheck)
        {             

            lb_Time.Text = string.Format("{0:hh:mm)}", DateTime.Now); 

        }

        else

        {

            lb_Time.Text = string.Format("{0:hh mm)}", DateTime.Now); 

        }

        bCheck = !bCheck;   // 반전

    }

}

 

사용자 정의 컨트롤 클래스 코드를 살펴보면 UserControl을 상속하였고 내부에서 독립 모듈로 작동할 수 있도록 Timer와 Timer 처리기 함수를 정의해 두었습니다. 어떤 프로젝트에서든지 그냥 디지털 시계디지털시계 컨트롤을 폼에 올리면 매우 유용하게 디지털시계 기능을 사용할 수 있습니다.

 

그럼 같은 솔루션내 새로운 프로젝트를 만들고 디지털 시계 컨트롤을 재사용해 보도록 하겠습니다.

 

솔루션에서 아래와 같이 새 프로젝트를 추가해 줍니다.

프로젝트 이름은 Unit_Test로 지었습니다.

DigitalClock 프로젝트에 있는 MyClock 사용자 정의 컨트롤을 Unit_Test 프로젝트에서 재사용해 보도록 하겠습니다.

먼저 DigitalClock 프로젝트의 MyClock를 복사해서 Unit_Test 프로젝트에 붙여 넣기 해 줍니다.

Unit_Test에서 복사한 MyClock 모듈을 사용하기 위해서는 빌드를 먼저 해야 도구 상자에서 사용자 정의 컨트롤을 가져와 사용할 수 있습니다.

빌드가 성공하면 아래와 같이 사용자 정의 컨트롤이 도구 상자에서 검색되어 사용할 수 있는 상태가 됩니다.

드래그 앤 드롭으로 새로 추가한 Unit_Test 프로젝트 폼에 사용자 정의 컨트롤을 올리면 디지털시계를 곧바로 사용할 수 있습니다.

 

이번에는 다른 솔루션에서 사용하는 방법입니다.

사용자 정의 컨트롤이 있는 디렉토리에서 파일 3개를 복사합니다.

 

MyClock.cs 파일과 MyClock.Designer.cs, MyClock.resx 파일을 복사하여

Unit_Test2 솔루션 밑에 아래와 같이 붙여넣기를 해 줍니다.

이제 Unit_Test2 솔루션을 열고 복사한 MyClock 모듈을 불러오도록 합니다.

기존항목 추가하기에서 MyClock.cs 파일만 불러옵니다.

처음에는 MyClock.cs파일이 일반 C# 클래스 형태로 인식하다가 잠시후 아래와 같이 사용자 정의 컨트롤 모양으로 아이콘이 바뀌는 것을 확인 할 수 있습니다.

새로 만든 Unit_Test2 솔루션을 빌드하여 도구상자에 사용자 정의 컨트롤을 반영하고 폼에서 불러오면 곧바로 재사용이 가능합니다.

이상으로 사용자 정의 컨트롤 재사용 방법에 대해서 정리해 보았습니다.

감사합니다.

댓글