Вот код, который запускается при событии PreviewTextInput: (Некоторые части кода немного избыточны, но они выполняют свою работу)
Код: Выделить всё
private void PreviewTextInput(object sender, TextCompositionEventArgs e)
{
TextBox textBox = (TextBox)sender;
if (e.Text == ".")
{
if (textBox.Text.Contains("."))
{
e.Handled = true;
return;
}
else
{
//Here I am attempting to add the decimal point myself
textBox.Text = (textBox.Text + ".");
e.handled = true;
return;
}
}
else
{
e.Handled = !IsTextAllowed(e.Text);
return;
}
}
private static bool IsTextAllowed(string text)
{
Regex regex = new Regex("[^0-9.-]+"); //regex that matches disallowed text
return !regex.IsMatch(text);
}
С моим кодом не должно быть ничего плохого, я просто надеялся заставить textBox пропустить ненужное (?) автоматическое форматирование .
Есть ли способ заставить текстовое поле «заботиться» об этой первой десятичной точке?
Возможно, дубликат, на который так и не был получен ответ.
или
*Есть ли другой подход к ограничению количества десятичных знаков?» (Я много сделал исследований в этой области, и я не думаю, что есть какие-либо другие варианты.)
Подробнее здесь: https://stackoverflow.com/questions/150 ... imal-point