CHashtag

[C#] [WPF] TextBox 숫자만 입력받는 법 본문

C#/WPF

[C#] [WPF] TextBox 숫자만 입력받는 법

HyoSeong 2021. 11. 29. 22:38
반응형

안녕하세요.

 

오늘은 WPF에서 TextBox를 사용할 때 숫자만 입력받는 방법에 대해 알아보도록 하겠습니다.

 

방법이 간단하여 바로 코드로 설명해드리도록 하겠습니다.

 


PreviewTextInput Event는 Text가 변경되었을 때 값이 반영되기 전에 먼저 들어오는 이벤트입니다.

여기서 e.Handled값을 이용하여 값 변경을 허용할지 말지를 결정짓게 되는겁니다.

 

따라서 Regex를 이용하여 숫자일 때에만 수정이 가능하게 구현하였습니다.

<!-- MainWindow.xaml -->
<TextBox PreviewTextInput="TextBox_PreviewTextInput" Text="{Binding Text}"/>

 

// MainWindow.xaml.cs
using System.Text.RegularExpressions;

private void TextBox_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    Regex regex = new Regex("[^0-9]+");
    e.Handled = regex.IsMatch(e.Text);
}

 

 

참고 링크

https://stackoverflow.com/questions/1268552/how-do-i-get-a-textbox-to-only-accept-numeric-input-in-wpf

 

How do I get a TextBox to only accept numeric input in WPF?

I'm looking to accept digits and the decimal point, but no sign. I've looked at samples using the NumericUpDown control for Windows Forms, and this sample of a NumericUpDown custom control from

stackoverflow.com

 

감사합니다.

반응형