[펌] 텍스트박스에 한글만, 영어만, 숫자만 입력하기
출처 : http://leadersway.cafe24.com/blog/entry/텍스트박스에-한글만-영어만-숫자만-입력하기?category=3
텍스트박스에 한글만 입력하기
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if((Char.IsPunctuation(e.KeyChar) || Char.IsDigit(e.KeyChar) || Char.IsLetter(e.KeyChar) || Char.IsSymbol(e.KeyChar)) && e.KeyChar != 8)
{
e.Handled = true;
}
}
텍스트박스에 영어만 입력하기
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if(!(Char.IsLetter(e.KeyChar)) && e.KeyChar != 8)
{
e.Handled = true;
}
}
private void textBox1_Leave(object sender, System.EventArgs e)
{
Regex emailregex = new Regex(@"[a-zA-Z]");
Boolean ismatch = emailregex.IsMatch(textBox1.Text);
if (!ismatch)
{
MessageBox.Show("영문자만 입력해 주세요.");
}
}
텍스트박스에 숫자만 입력하기
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if(!(Char.IsDigit(e.KeyChar)) && e.KeyChar != 8)
{
e.Handled = true;
}
}private void textBox1_Leave(object sender, System.EventArgs e)
{
Regex emailregex = new Regex(@"[0-9]");
Boolean ismatch = emailregex.IsMatch(textBox1.Text);
if (!ismatch)
{
MessageBox.Show("숫자만 입력해 주세요.");
}
}
음.. 이렇게 두번에 걸쳐 체크한 이유는 한글은 ProcessKey이기 때문에 KeyPress 이벤트가 일어나지 않기 때문입니다. 그렇기 때문에 텍스트박스에서 포커스가 벗어날때 정규식을 이용해 한번더 체크해줘야 합니다. 키값 8번은 백스페이스 값입니다.
자료출처 : C#개발자싸이트
'Programming > Regex' 카테고리의 다른 글
[링크] 정규식 체크 사이트 (0) | 2017.12.05 |
---|---|
[펌] C# - 정규식을 이용한 문자 변환 (0) | 2016.04.15 |
[펌] 유저 계정을 만들 때 특수 문자 구별하는 코드 (0) | 2016.02.16 |
C# 숫자,영/소/대문자, 입력사이즈 제한 - 정규식 (0) | 2010.10.28 |
TextBox에 한글, 영어, 숫자만 입력받기. (1) | 2010.06.25 |