Проверка TextBox - C # - PullRequest
       2

Проверка TextBox - C #

3 голосов
/ 14 июля 2010

У меня довольно трудные времена с проверкой текстового поля моего приложения C #. Дело в том, что указанное текстовое поле должно принимать только десятичные значения. это означает, что не должно быть букв или каких-либо других символов, кроме '.' условное обозначение. Фильтр писем, я могу справиться. Однако я точно не знаю, как мне удастся отфильтровать число «.» что текстовое поле должно принять. Если у кого-то есть идеи, как это сделать, пожалуйста, дайте мне идею.

Большое спасибо:)

Ответы [ 5 ]

4 голосов
/ 14 июля 2010
decimal value;
bool isValid = decimal.TryParse(textBox.Text, out value);

if (!isValid)
{
    throw new ArgumentException("Input must be a decimal value");
}
3 голосов
/ 14 июля 2010

это должно работать !!!

изменено только для одного десятичного знака

    private void txtType_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)Keys.Back || (e.KeyChar == (char)'.') && !(sender as TextBox).Text.Contains("."))
        {
            return;
        }
        decimal isNumber = 0;
        e.Handled = !decimal.TryParse(e.KeyChar.ToString(), out isNumber);
    }
1 голос
/ 14 июля 2010

Использовать проверку регулярных выражений:

^([0-9]*|\d*\.\d{1}?\d*)$

На этом сайте есть библиотека проверки регулярных выражений (включая числовые), которые вы найдете полезными:

http://regexlib.com/Search.aspx?k=decimal&c=-1&m=-1&ps=20

1 голос
/ 14 июля 2010

Просто мысль: если вы следите за десятичными знаками, просто держите флаг bool под своим контролем, чтобы сказать: «У меня уже есть точка»; последующие точки недействительны.

В качестве альтернативы, при проверке десятичных знаков вы можете использовать Contains:

if (textbox.Text.Contains("."))

Кроме того, просмотрите этот образец, доступный на MSDN (NumericTextBox):

http://msdn.microsoft.com/en-us/library/ms229644(VS.80).aspx

0 голосов
/ 14 июля 2010

Вместо этого используйте MaskedTextBox и установите маску так, чтобы она принимала только десятичные дроби.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...