Ограничиваем ввод до двух знаков после запятой в C#
Иногда бывает нужно ограничить ввод до двух знаков после запятой.
Следующая функция возвращает true
, если входное значения является действительным, в противном случае она возвращает значение false
:
class ValidAmount
{
const int KEYCODE_FOR_DOT = 190;
public static bool IsValidMoneyInput(String previousInput, String key, int keyCode)
{
if (!String.IsNullOrWhiteSpace(previousInput))
{
if (previousInput.Contains("."))
{
if (keyCode == KEYCODE_FOR_DOT)
{
return false;
}
else
{
String[] strings = previousInput.Split('.');
if (strings[1].Length > 1)
{
return false;
}
}
}
}
return true;
}
}
Для использования данной функции, вам нужно навесить обработчик на событие Key_Down
для текстового поля (TextBox) и поместить в него следующий код:
private void Amounnt_OnKeyDown(object sender, KeyEventArgs e)
{
e.Handled = !ValidAmount.IsValidMoneyInput(AmountToSend.Text, e.Key.ToString(), e.PlatformKeyCode);
}