首頁 > 後端開發 > C++ > 如何限制WPF文​​本框以僅接受數字輸入?

如何限制WPF文​​本框以僅接受數字輸入?

Susan Sarandon
發布: 2025-01-29 14:16:10
原創
759 人瀏覽過

How to Restrict a WPF TextBox to Accept Only Numeric Input?

在WPF TextBox中僅接受數字輸入

WPF應用程序經常需要限制TextBox只接受數字輸入,無論是整數還是小數,這對於各種應用都是必要的。

使用PreviewTextInput和IsTextAllowed

為了實現此功能,可以使用PreviewTextInput事件:

<code class="language-xml"><TextBox PreviewTextInput="PreviewTextInput"></TextBox></code>
登入後複製

PreviewTextInput事件處理程序中,可以使用IsTextAllowed方法控制是否允許用戶的輸入:

<code class="language-csharp">private static readonly Regex _regex = new Regex("[^0-9.-]+"); //匹配不允许的文本的正则表达式
private static bool IsTextAllowed(string text)
{
    return !_regex.IsMatch(text);
}

private void PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    if (!IsTextAllowed(e.Text))
    {
        e.Handled = true;
    }
}</code>
登入後複製

此方法使用正則表達式來驗證輸入,以滿足應用程序的需求。

阻止數據對象粘貼

為了進一步限制輸入,可以使用DataObject.Pasting事件:

<code class="language-xml"><TextBox DataObject.Pasting="TextBoxPasting"></TextBox></code>
登入後複製
<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>
登入後複製

這確保了粘貼到TextBox中的數據也符合所需的輸入條件。 注意,這裡將RoutedEventArgs更正為TextCompositionEventArgs,更符合PreviewTextInput事件的參數類型。 對於DataObject.Pasting事件,代碼保持不變。

以上是如何限制WPF文​​本框以僅接受數字輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板