본문 바로가기

[C#] 사용자 정의 컨트롤(UserControl) 사용법

C#
·
2020. 2. 4. 15:13
반응형

윈폼(WinForm)에서는 기존에 제공하는 컨트롤(Control)을 조합해서 새로운 사용자 정의 컨트롤을 만들 수 있습니다. 사용자 정의 컨트롤을 만들게 되면 다른 프로젝트에서 재사용 할 수 있기 때문에 생산성을 높일 수 있습니다.

사용자 정의 컨트롤의 이해를 돕기 위해 날짜 확인 버튼 클릭 시 오늘 날짜가 메시지 박스로 출력되고, 시간 확인 버튼 클릭 시 현재 시간이 메시지 박스로 출력되는 예제를 만들어 보겠습니다.

사용자 정의 컨트롤 생성

Visual Studio에서 새 프로젝트 -> Windows Forms 컨트롤 라이브러리를 선택 후 프로젝트 이름을 UserDateTime으로 입력하고 프로젝트를 생성합니다.

프로젝트 생성

프로젝트 생성 후 다음과 같이 컨트롤을 위치시키고 컨트롤의 속성 값을 설정합니다. TableLayoutPanel 안에 2개의 버튼을 위치시킵니다.

TableLayoutPanel

폼 컨트롤 속성
UserControl Name UserControl1
Size 200, 30
TableLayoutPanel Name tableLayoutPanel1
Dock Fill
ColumnCount 2
RowCount 1
Button Name btnDate
Dock Fill
Text 날짜 확인
Button Name btnTime
Dock Fill
Text 시간 확인

각 버튼을 더블 클릭해서 버튼 클릭 이벤트를 다음과 같이 추가합니다.

namespace UserDateTime
{
    public partial class UserControl1: UserControl
    {
        public UserControl1()
        {
            InitializeComponent();
        }

        private void btnDate_Click(object sender, EventArgs e)
        {
            string date = DateTime.Now.ToString("yyyy.MM.dd");
            MessageBox.Show(date, "오늘 날짜");
        }

        private void btnTime_Click(object sender, EventArgs e)
        {
            string time = DateTime.Now.ToString("HH:mm:ss");
            MessageBox.Show(time, "현재 시간");
        }
    }
}

빌드 -> 솔루션 빌드를 클릭해서 프로젝트를 빌드합니다.

솔루션 빌드

빌드가 성공적으로 완료되면 프로젝트 폴더\bin\Debug 폴더에 UserDateTime.dll 파일이 생성됩니다. 생성된 UserDateTime.dll 파일을 참조하면 다른 프로젝트에서 사용자 정의 컨트롤을 사용할 수 있습니다.

dll 파일 생성

사용자 정의 컨트롤 사용

생성된 사용자 정의 컨트롤을 사용하기 위해 새로운 프로젝트를 생성하겠습니다.
새 프로젝트 -> Windows Forms 앱을 선택 후 프로젝트 이름을 UseUserControl으로 입력하고 프로젝트를 생성합니다.

새로운 프로젝트 생성

프로젝트 생성 후 도구 상자를 우클릭 후 항목 선택을 클릭합니다.

항목 선택

도구 상자 항목 선택에서 찾아보기를 클릭합니다.

도구 상자 항목 선택

빌드후 생성된 UserDateTime.dll 파일을 연 후 확인을 누릅니다.

dll 파일 열기


사용자 정의 컨트롤에서 작성한 코드를 사용하고 싶은 경우 UserDateTime.dll 파일을 프로젝트에서 참조로 추가하면 됩니다.

만약 도구 상자에 놓을 수 있는 구성 요소가 없습니다. 라는 오류가 발생할 경우 UserDateTime.dll 파일을 도구 상자에 드래그 앤 드롭하면 사용자 정의 컨트롤이 생성됩니다.

도구 상자에 놓을 수 있는 구성 요소가 없습니다


UserDateTime.dll 파일을 열면 도구상자 -> 일반UserDateTime 이라는 사용자 정의 컨트롤이 생성된 것을 확인할 수 있습니다.

사용자 정의 컨트롤 생성 완료

사용자 정의 컨트롤을 폼에 드래그 앤 드롭해서 배치시킵니다.

사용자 정의 컨트롤 배치

프로젝트를 시작하고 날짜 확인, 시간 확인 버튼을 누르면 메시지 박스가 뜨는 것을 확인할 수 있습니다.

날짜 확인

시간 확인

반응형
블로그 이미지
Frontend Engineer

댓글