분노의 챔질

[C#] 간단한 UserControl 본문

Programming/C#

[C#] 간단한 UserControl

분노의블로그 2010. 3. 5. 11:19
반응형



상단의 간단한 텍스트버튼에디트(?) 암튼
참고로 DevExpress의 ButtonEdit를 흉내낸것이다.
프로젝트(UserControls)를 한개 만들고 사용자정의컨트롤을 하나 만들자.


이름은 ButtonEdit.cs 로 하였다..
텍스트박스한개, 라벨한개 추가해서 대충 디자인하고.
텍스트박스
Name : txtEdit
Anchor : Top, Left, Right
BorderStyle : FixedSingle

라벨
Name : lblButton
Anchor : Top, Right
AutoSize : False
BorderStyle : FixedSingle

디자인이 끝났으면 코딩을 해야쥐

ButtonEdit.cs 코드

using
System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Drawing;

using System.Data;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace UserControls

{

    public partial class ButtonEdit : UserControl

    {

       //사용자 이벤트를 만들어준다.

 public delegate void UserButtonClick(object sender, EventArgs e);

       public event UserButtonClick ButtonClick;

 

       public ButtonEdit()

       {

            InitializeComponent();

 

            this.lblButton.MouseHover += (sender, e) =>

                {

                    lblButton.BackColor = Color.MistyRose;

                    Cursor.Current = Cursors.Hand;

                };

            this.lblButton.MouseLeave += (sender, e) =>

                {

                    lblButton.BackColor = Color.WhiteSmoke;

                };

       }

 

       public string EditText

       {

get { return txtEdit.Text; }

            set { txtEdit.Text = value; }

       }

 

       private void lblButton_Click(object sender, EventArgs e)

       {

            if (ButtonClick != null)

                ButtonClick.Invoke(this, e);

       }

   }

}

이렇게 만들면 땡~~~~
프로젝트 프로퍼티를 열어서 출력형식을 클래스라이브러리로 바꾸고 빌드를 해주면
UserControls.dll이 생길것이다!!!


이제 사용법을 보자

새로운 프로젝트를 하나 생성해서
UserControls.dll을 참조에 추가시키고
UserControls.dll을 도구상자에 드래그해서 가져다 놓으면

이런게 생길것이다...
안생기면.. 나도 몰라 -_-;

만들어진 컨트롤을 가져다 쓰면 된다..

코딩한 버튼이벤트가 생성되었다..



역시 EditText가 있는것이 보인다.




















namespace
WindowsFormsApplication1

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

 

            //이렇게 사용하든가

            buttonEdit1.ButtonClick += (sender, e) =>

                {

                    buttonEdit1.EditText = "되는군화~";

                };

        }

 

        //요렇게 쓰던가 맘대로

        private void buttonEdit1_ButtonClick(object sender, EventArgs e)

        {

            MessageBox.Show("되는군화~");

        }

    }

}

 

반응형

'Programming > C#' 카테고리의 다른 글

[C#] CPU 사용량 보기  (1) 2010.03.23
[C#] 붙여넣기, Ctrl+V  (0) 2010.03.09
[C#] IP주소 알아내기  (0) 2010.03.05
C# 엑셀불러오기  (0) 2010.02.25
C# 간단한 메일보내기  (0) 2010.02.25