텍스트 박스 한글 영어 입력 방법
텍스트박스에 한글만 입력하기
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#] TextBox에 한글, 영어, 숫자만 입력받기|작성자 좋은생각
ASP.NET
TextBox 에 입력되는 글자를 영어로 할건지, 한국어로 할건지에 대해 설정할때 사용할 수 있는 좋은 방법이 있네요.
1. 영문만 입력 : style="ime-mode:disabled;"
2. 한글/영문 선택 : style="ime-mode:auto;"
3. 기본 한글 입력 : style="ime-mode:active;"
4. 기본 영문 입력 : style="ime-mode:inactive;"
[출처] [ASP.NET] TextBox 한글/영문 제어하기.|작성자 남처리