Как я могу сделать текстовое поле WPF заботиться о десятичной точке?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу сделать текстовое поле WPF заботиться о десятичной точке?

Сообщение Anonymous »

Итак, у меня есть текстовое поле , которое позволяет только цифры и десятичные точки. Я хочу, чтобы пользователю разрешили ввести только 1 десятичную точку. < /p>

Вот код, который запускается на событии PreviewTextInput < /code>: (некоторые из кода немного избыточно, но он выполняет задание) < /p>

Код: Выделить всё

    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);
}
Проблема заключается в , что первая десятичная точка, введенная, не является « значимым », пока за ней не следует число. Таким образом, если пользователь входит 123. , и вы должны были установить точку Breakpoint и проверить значение Textbox.text это будет 123 . Я знаю, что это происходит, потому что TextBox связан с двойным , поэтому он пытается быть «умным» и забыть о тех, кто в настоящее время «незначительный» значения («.»). < /p>

Не должно быть ничего плохого в моем коде, я просто надеялся заставить текстовое поле < /code>, надеюсь, пропустить какое-то ненужное (?) Автоформатирование. < /p>

есть ли способ сделать текстовый поле < /code> "Care" об этой первой десятичной точке? Количество десятичных декораций? »(Я провел много исследований в этой области, и я не думаю, что есть другие варианты.)

Подробнее здесь: https://stackoverflow.com/questions/150 ... imal-point
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»