API REST не будет работать для того, что вы пытаетесь, потому что StickyNotes имеет ItemClass of IPM.StickyNote, а REST API для сообщений будет возвращать только те элементы, которые имеют класс или подкласс IPM.Note. Вам нужно будет использовать EWS (SOAP), попробуйте https://pypi.org/project/exchangelib/
Добавить событие ввода текста предварительного просмотра. Примерно так:
.
Затем внутри этого установите 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();
}
}
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);
}
Добавьте ПРАВИЛО ПРОВЕРКИ, чтобы при изменении текста проверять, являются ли данные числовыми, и если да, то обработка продолжится, а если нет, то пользователю будет предложено что в этом поле принимаются только числовые данные.
Подробнее см. Проверка в Windows Presentation Foundation