Разрешить ввод только 2 десятичных знака (C # + WindowsPhone) - PullRequest
0 голосов
/ 12 марта 2012

Я использую этот код, чтобы разрешить ввод только 1 десятичной точки. Работает нормально. Но как я могу сделать это, чтобы разрешить ввод только 2 чисел после десятичной точки?

C #

 private void txtPrecio_KeyDown(object sender, KeyEventArgs e)
    {
        TextBox txt1 = (TextBox)sender;

        if (txt1.Text.Contains(".") && e.PlatformKeyCode == 190)
        {
            e.Handled = true;
        }           
    }

Ответы [ 3 ]

2 голосов
/ 12 марта 2012

Возможно, , это или какое-либо другое замаскированное редактирование на основе Silverlight может помочь вам решить вашу проблему гораздо чище?

Надеюсь, это поможет.

1 голос
/ 12 марта 2012

Почему бы просто не отформатировать результат:

double e = double.Parse(text);
string nText = string.Format("{0:0.##}", e);
e = double.Parse(nText);
1 голос
/ 12 марта 2012

Просто проверьте, является ли последний символ числовым значением, предпоследний символ - числовое значение, а символ перед ним - точка / точка.

Или, если вы хотите использовать регулярное выражение *, что-то вроде

if (Regex.IsMatch(".[0-9]{2}$", txt1.Text)
{
    e.Handled = true;
}

* - это регулярное выражение выполнено из памяти, но оно ищет (намеревается) увидеть, заканчивается ли текст десятичным знаком, а затем 2 цифровыми символами.

...