Ввод минуса только первым символом - C#

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток. Подскажите как сделать чтобы минус вводился в textbox только первым символом. Google не помог

Решение задачи: «Ввод минуса только первым символом»

textual
Листинг программы
private void Tb_KeyPress(object sender, KeyPressEventArgs e)
{
    var tb = (TextBox)sender;
    //Разбираемся с минусом
    if (e.KeyChar.ToString().Equals("-"))
    {
        e.Handled = tb.SelectionStart != 0 || tb.Text.IndexOf("-") != -1;
        if (!e.Handled)
        {
            return;
        }
    }
    //Десятичный разделитель в системе
    var decSep = NumberFormatInfo.CurrentInfo.NumberDecimalSeparator;
    //Разбираемся с десятичным разделителем.
    if (e.KeyChar.ToString().Equals(decSep))
    {
        e.Handled = tb.Text.Length == 0 || tb.Text.IndexOf(decSep) != -1;
        if (!e.Handled)
        {
            return;
        }
    }
    //Разбираемся с цифрами
    e.Handled = !char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar);
}

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы