Maison > développement back-end > C++ > Comment puis-je restreindre les entrées dans une zone de texte WPF à seulement des valeurs numériques et un point décimal?

Comment puis-je restreindre les entrées dans une zone de texte WPF à seulement des valeurs numériques et un point décimal?

Patricia Arquette
Libérer: 2025-01-29 14:11:08
original
261 Les gens l'ont consulté

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

restreindre l'entrée de la zone de texte WPF aux valeurs numériques et un point décimal

Besoin d'une zone de texte WPF qui accepte uniquement les nombres et un point décimal, sans autoriser les signes? Bien qu'un contrôle NumericUpDown puisse sembler une solution, il peut ne pas s'adapter à la conception de votre application. Une approche plus flexible utilise les événements PreviewTextInput et DataObject.Pasting.

Ajoutez l'événement PreviewTextInput à votre définition de zone de texte comme ceci: <TextBox PreviewTextInput="PreviewTextInput"></TextBox>.

Le gestionnaire d'événements PreviewTextInput vérifie si l'entrée est valide à l'aide d'une expression régulière. Cet exemple ne permet que des chiffres, des périodes (.) Et des tirets (-):

<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>
Copier après la connexion

Pour éviter le collage de données non valides, gérez l'événement 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>
Copier après la connexion

Ces méthodes garantissent que votre zone de texte accepte uniquement les entrées numériques, fournissant une solution propre et efficace adaptée à la conception de votre application.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal