C# 숫자 만 허용하는 텍스트 상자 만들기

Minahil Noor 2024년2월16일
  1. C#에서KeyPressEventArgs 클래스를 사용하여 ‘숫자’만 허용하는 ‘텍스트 상자’를 만듭니다
  2. C#에서Regex.IsMatch()메서드를 사용하여 숫자 만 허용하는 ‘텍스트 상자’를 만듭니다
  3. NumericUpDown 메서드를 사용하여 숫자 만 허용하는 텍스트 상자 만들기
C# 숫자 만 허용하는 텍스트 상자 만들기

Windows Forms를 만드는 동안 일부 텍스트 필드에는 숫자 값만 필요합니다. 예를 들어, 사용자로부터 전화 번호를 얻으려면 ‘텍스트 상자’를 숫자 값으로 만 제한해야합니다.

이 기사에서는 숫자 만 허용하는 ‘텍스트 상자’를 만드는 방법에 중점을 둘 것입니다.

C#에서KeyPressEventArgs 클래스를 사용하여 ‘숫자’만 허용하는 ‘텍스트 상자’를 만듭니다

KeyPressEventArgs는 사용자가 입력 할 때 입력 한 문자를 지정하는 C# 클래스입니다. 키를 누른다. KeyChar 속성은 사용자가 입력 한 문자를 반환합니다. 여기서는 KeyPress이벤트를 사용하여 textbox를 숫자 값으로 만 제한했습니다.

이 작업을 수행하는 키 코드는 다음과 같습니다.

!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.');

eKeyChar 속성을 사용하여 입력 된 키를 가져 오는KeyPressEventArgs 객체입니다.

예제 코드:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1 {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }
    private void textBox1_KeyPress(object sender, KeyPressEventArgs e) {
      if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) && (e.KeyChar != '.')) {
        e.Handled = true;
      }

      // only allow one decimal point
      if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1)) {
        e.Handled = true;
      }
    }
  }
}

출력:

//only allows numeric values in the textbox

C# TextBox는 숫자 만 허용합니다

C#에서Regex.IsMatch()메서드를 사용하여 숫자 만 허용하는 ‘텍스트 상자’를 만듭니다

C#에서는 정규식을 사용하여 다양한 패턴을 확인할 수 있습니다. 정규식은 특정 작업을 수행하기위한 특정 패턴입니다. RegularExpressionsRegex.IsMatch()메소드에 대한 정의를 포함하는 C# 클래스입니다. C#에는^[0-9]+$^\d+$정규식이있어string이 숫자인지 확인합니다.

이 방법을 사용하는 올바른 구문은 다음과 같습니다.

Regex.IsMatch(StringName, @"Expression");

예제 코드:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1 {
  public partial class Form1 : Form {
    public Form1() {
      InitializeComponent();
    }
    private void textBox1_TextChanged(object sender, EventArgs e) {
      if (System.Text.RegularExpressions.Regex.IsMatch(textBox1.Text, "  ^ [0-9]")) {
        textBox1.Text = "";
      }
    }
  }
}

출력:

//A textbox created that only accepts numbers.

C# TextBox는 숫자 만 허용합니다

NumericUpDown 메서드를 사용하여 숫자 만 허용하는 텍스트 상자 만들기

NumericUpDown은 텍스트 상자가 제공하는 상향 및 하향 버튼을 사용하여 수치를 입력할 수 있는 인터페이스를 사용자에게 제공합니다.너는 간단히 공구상자에서 NumericUpDown을 끌어다 놓아서 숫자만 받는 텍스트 상자를 만들 수 있다.

NumericUpDown 객체를 동적으로 생성 할 수도 있습니다. NumericUpDown을 생성하는 코드는 다음과 같습니다.

private System.Windows.Forms.NumericUpDown numericUpDown;
this.numericUpDown = new System.Windows.Forms.NumericUpDown();

속성 창을 열어서 수정할 수있는 몇 가지 속성이 있습니다.

출력:

C# TextBox는 숫자 만 허용합니다

관련 문장 - Csharp Textbox