Не могу ввести отрицательные числа в текстовом поле в C # - PullRequest
2 голосов
/ 04 марта 2012

в одной из моих программ я должен принимать числовые значения от пользователя. я сделал "double.parse", чтобы преобразовать строку в текстовое поле в double. Но во время отладки, как только я ввожу знак минус (-), компилятор выдает ошибку. Ошибка:

FORMAT EXCEPTION IS UNHANDLED
Input string was not in a correct format.

Код:

private void textBox1_TextChanged(object sender, EventArgs e)
    {
        p1 = double.Parse(textBox1.Text);
    }

Ответы [ 2 ]

8 голосов
/ 04 марта 2012

Это потому, что вы делаете это в textBox1_TextChanged: это слишком рано для разбора double, на этой стадии оно может быть неполным.

Попробуйте сделать это, когда конечный пользователь думает, что запись завершена - например, в обработчике событий потерянного фокуса. Кроме того, вы можете использовать метод double.TryParse, чтобы избежать исключений для частичных записей.

0 голосов
/ 08 апреля 2013
private void textbox1_TextChanged(object sender, EventArgs e)
    {
        if (textbox1.Text != "" & textbox1.Text != "-")
        {
            p1 = double.Parse(textbox1.Text);
        }
    }

или это тоже работает ...

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