Как я заставляю TextBox только принимать числовой вход в WPF?

API REST не будет работать для того, что вы пытаетесь, потому что StickyNotes имеет ItemClass of IPM.StickyNote, а REST API для сообщений будет возвращать только те элементы, которые имеют класс или подкласс IPM.Note. Вам нужно будет использовать EWS (SOAP), попробуйте https://pypi.org/project/exchangelib/

317
задан Vadim Ovchinnikov 17 June 2018 в 22:58
поделиться

3 ответа

Добавить событие ввода текста предварительного просмотра. Примерно так: .

Затем внутри этого установите e.Handled , если текст не разрешен. e.Handled =! IsTextAllowed (e.Text);

Я использую простое регулярное выражение в методе IsTextAllowed , чтобы увидеть, следует ли разрешить то, что они набрали. В моем случае я хочу разрешить только числа, точки и тире.

private static readonly Regex _regex = new Regex("[^0-9.-]+"); //regex that matches disallowed text
private static bool IsTextAllowed(string text)
{
    return !_regex.IsMatch(text);
}

Если вы хотите предотвратить вставку неверных данных, подключите событие DataObject.Pasting DataObject.Pasting = "TextBoxPasting" как показано здесь (фрагмент кода):

// Use the DataObject.Pasting Handler 
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();
    }
}
392
ответ дан 23 November 2019 в 01:02
поделиться

Для разработчиков, которые хотят, чтобы их текстовые поля принимали только неподписанные числа, такие как порты сокетов и т. Д .:

WPF

<TextBox PreviewTextInput="Port_PreviewTextInput" MaxLines="1"/>

C #

private void Port_PreviewTextInput(object sender, TextCompositionEventArgs e)
{
    e.Handled = !int.TryParse(e.Text, out int x);
}
0
ответ дан 23 November 2019 в 01:02
поделиться

Добавьте ПРАВИЛО ПРОВЕРКИ, чтобы при изменении текста проверять, являются ли данные числовыми, и если да, то обработка продолжится, а если нет, то пользователю будет предложено что в этом поле принимаются только числовые данные.

Подробнее см. Проверка в Windows Presentation Foundation

23
ответ дан 23 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: