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
Lepaskan: 2025-01-29 14:11:08
asal
330 orang telah melayarinya

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

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);
}
Salin selepas log masuk
Untuk mengelakkan penampakan data tidak sah, mengendalikan peristiwa

: DataObject.Pasting

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();
    }
}
Salin selepas log masuk
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 Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan