Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh menyekat input dalam kotak teks WPF untuk hanya nilai angka dan titik perpuluhan?

Bagaimanakah saya boleh menyekat input dalam kotak teks WPF untuk hanya nilai angka dan titik perpuluhan?

Patricia Arquette
Patricia Arquetteasal
2025-01-29 14:11:08332semak imbas

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

Mengehadkan input kotak teks WPF ke nilai angka dan titik perpuluhan

memerlukan kotak teks WPF yang hanya menerima nombor dan titik perpuluhan, tanpa membenarkan sebarang tanda? Walaupun kawalan

mungkin kelihatan seperti penyelesaian, ia mungkin tidak sesuai dengan reka bentuk aplikasi anda. Pendekatan yang lebih fleksibel menggunakan peristiwa NumericUpDown dan PreviewTextInput. DataObject.Pasting

tambahkan acara

ke definisi kotak teks anda seperti ini: PreviewTextInput. <TextBox PreviewTextInput="PreviewTextInput"></TextBox>

Pemeriksaan pengendali acara

jika input sah menggunakan ungkapan biasa. Contoh ini hanya membolehkan digit, tempoh (.), Dan tanda hubung (-): 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>
Untuk mengelakkan penampakan data tidak sah, mengendalikan peristiwa

: 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>
Kaedah ini memastikan kotak teks anda hanya menerima input angka, menyediakan penyelesaian yang bersih dan cekap yang disesuaikan dengan reka bentuk aplikasi anda.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menyekat input dalam kotak teks WPF untuk hanya nilai angka dan titik perpuluhan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn