본문 바로가기

프로그래밍&IT/C#

TextBox에 숫자만 입력하기 & 3자리마다 콤마(,) 찍기

C# Winform (윈폼)의 기본 컨트롤 TextBox에 값을 입력할 때 필요한 기능들을 정리해봤다.

알고리즘매매만들다보니 보유종목별로 평균 매입단가 등을 입력하거나 출력을 위해서 필요한 기능이라 찾아봤다.

프리랜서 일 구할때는 확실히 Java가 낫긴하지만, 개인 프로젝트 (사업?)을 할 때는 C# Winform 을 시작한게 나쁘진 않았다는 생각이다.

 

목차

  • 숫자만 입력하기 (단, 삭제를 위해선 Back space는 있어야겠지?)
  • 숫자 입력시 3자리마다 콤마 찍기

 

숫자만 입력하기 

public static void Textbox_KeyPress_ToEnterDigit(object sender, KeyPressEventArgs e) {
    if(!char.IsDigit(e.KeyChar) && e.KeyChar != (char)Keys.Back) {
        e.Handled = true;
    }
}

 

 

3자리마다 콤마 찍기

public static void Textbox_TextChanged_AddComma(object sender, EventArgs e) {
    TextBox textBox = sender as TextBox;
    string input = textBox.Text.Replace(",", ""); //쉼표제거
    if(long.TryParse(input, out long number)) {
        textBox.Text = string.Format("{0:N0}", number);
        textBox.SelectionStart = textBox.Text.Length;
    }
}