MaskedTextBox 컨트롤
MaskedTextBox 컨트롤은 TextBox에 입력 형식을 제한하는 기능을 추가한 컨트롤이다. 속성 Mask에 입력 형식을 지정하는데, 예를 들어 날짜를 입력할 경우 0000.00.00과 같이 할 수 있다. 어떤 마스크 종류가 있는지는 MSDN의 Mask 속성에 자세히 열거되어 있다. 참고로 Visual Studio의 속성창에서 Mask 속성을 클릭하면 ... 버튼이 생기는데, 이를 클릭하여 마스크 형식 샘플을 보여주는 다이얼로그가 보여진다.
MaskedTextBox 컨트롤 사용
MaskedTextBox 컨트롤에서 Mask를 설정했을 때, 사용자가 잘못된 값을 입력하면 즉 숫자 자리에 문자를 입력한 경우, MaskInputRejected 이벤트가 발생한다. 따라서 이 이벤트에 가입하여 툴팁을 보여주는 등의 처리등이 가능하다. 아래 예제는 전화번호 입력 마스크를 사용하는 예로서 잘못된 값이 입력되면 툴팁 메시지를 보여준다.
예제
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 0는 반드시 숫자 입력 요
// 9은 숫자나 공란
maskedTextBox1.Mask = "(999)000-0000";
}
private void maskedTextBox1_MaskInputRejected(object sender,
MaskInputRejectedEventArgs e)
{
if (e.Position < 5) // (999)인 경우
{
toolTip1.Show("숫자나 공란만 입력 가능", this);
}
else // 000-0000 인 경우
{
toolTip1.Show("숫자만 입력 가능", this);
}
}
private void button1_Click(object sender, EventArgs e)
{
string val = maskedTextBox1.Text;
MessageBox.Show(val);
}
}
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// 0는 반드시 숫자 입력 요
// 9은 숫자나 공란
maskedTextBox1.Mask = "(999)000-0000";
}
private void maskedTextBox1_MaskInputRejected(object sender,
MaskInputRejectedEventArgs e)
{
if (e.Position < 5) // (999)인 경우
{
toolTip1.Show("숫자나 공란만 입력 가능", this);
}
else // 000-0000 인 경우
{
toolTip1.Show("숫자만 입력 가능", this);
}
}
private void button1_Click(object sender, EventArgs e)
{
string val = maskedTextBox1.Text;
MessageBox.Show(val);
}
}