분노의 챔질
[C#] 간단한 UserControl 본문
상단의 간단한 텍스트버튼에디트(?) 암튼
참고로 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 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 |