Извините, если это действительно простой вопрос, но я новичок в C #, и это мое первое приложение для Windows.
В приведенном ниже коде мой TextBox принимает только десятичную точку ",", знак минус "-", цифры, а также принимает ввод клавиш удаления и возврата на одну позицию (поправьте меня, если я ошибаюсь). Так что я могу вводить и удалять цифры, такие как:
-12.31
-.31
Проблема в том, что я также могу ввести что-то вроде:
12-
Есть ли способ ввести только "-", если это первый символ строки? Я попробовал Google, и я пытался что-то придумать, но ничего не получается.
И спасибо, что уделили время.
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar) && (e.KeyChar != ',') && (e.KeyChar != '-') && (e.KeyChar != (char)8))
{
e.Handled = true;
}
if ((e.KeyChar == ',') && ((sender as TextBox).Text.IndexOf(',') > -1))
{
e.Handled = true;
}
if ((e.KeyChar == '-') && ((sender as TextBox).Text.IndexOf('-') > -1))
{
e.Handled = true;
}
}