Heim > Backend-Entwicklung > C++ > Wie kann ich die Eingabe in einem WPF -Textfeld auf nur numerische Werte und einen Dezimalpunkt beschränken?

Wie kann ich die Eingabe in einem WPF -Textfeld auf nur numerische Werte und einen Dezimalpunkt beschränken?

Patricia Arquette
Freigeben: 2025-01-29 14:11:08
Original
261 Leute haben es durchsucht

How Can I Restrict Input in a WPF TextBox to Only Numeric Values and a Decimal Point?

Einschränkung der WPF -Textboxeingabe auf numerische Werte und einen Dezimalpunkt

Benötigen Sie ein WPF -Textfeld, das nur Zahlen und einen Dezimalpunkt akzeptiert, ohne Anzeichen zuzulassen? Während eine NumericUpDown Kontrolle wie eine Lösung scheint, passt sie möglicherweise nicht zum Design Ihrer Anwendung. Ein flexiblerer Ansatz verwendet die Ereignisse PreviewTextInput und DataObject.Pasting.

Fügen Sie das Ereignis PreviewTextInput Ihrer Textbox -Definition wie folgt hinzu: <TextBox PreviewTextInput="PreviewTextInput"></TextBox>.

Der Ereignishandler prüft, ob die Eingabe unter Verwendung eines regulären Ausdrucks gültig ist. Dieses Beispiel erlaubt nur Ziffern, Perioden () und Bindestriche (-): PreviewTextInput

<code class="language-csharp">private static readonly Regex _regex = new Regex("[^0-9.-]+"); // Regex for disallowed characters

private static bool IsTextAllowed(string text)
{
    return !_regex.IsMatch(text);
}

private void PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    e.Handled = !IsTextAllowed(e.Text);
}</code>
Nach dem Login kopieren
Um das Einfügen ungültiger Daten zu verhindern, verarbeiten Sie das Ereignis

: DataObject.Pasting

<code class="language-csharp">private void TextBoxPasting(object sender, DataObjectPastingEventArgs e)
{
    if (e.DataObject.GetDataPresent(typeof(String)))
    {
        string text = (string)e.DataObject.GetData(typeof(String));
        if (!IsTextAllowed(text))
        {
            e.CancelCommand();
        }
    }
    else
    {
        e.CancelCommand();
    }
}</code>
Nach dem Login kopieren
Diese Methoden stellen sicher, dass Ihr Textfeld nur numerische Eingaben akzeptiert und eine saubere und effiziente Lösung bietet, die auf das Design Ihrer Anwendung zugeschnitten ist.

Das obige ist der detaillierte Inhalt vonWie kann ich die Eingabe in einem WPF -Textfeld auf nur numerische Werte und einen Dezimalpunkt beschränken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage