Я создаю числовое текстовое поле и хочу, чтобы десятичный символ numpad отображался на CultureInfo.CurrentUICulture.NumberFormat.NumberDecimalSeparator
, как это делает Excel.
Есть ли способ изменить (заменить) ключ перед его интерпретациейTextBox
?
Моя текущая стратегия такова:
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.KeyCode == Keys.Decimal)
{
e.Handled = true;
e.SuppressKeyPress = true;
int selectionStart = SelectionStart;
Text = String.Concat(
Text.Substring(0, selectionStart),
CultureInfo.CurrentUICulture.NumberFormat.NumberDecimalSeparator,
Text.Substring(SelectionStart + SelectionLength)
);
Select(selectionStart + 1, 0);
}
else
{
base.OnKeyDown(e);
}
}