Есть некий TextBox. В него должны вводиться числа (целые, либо с плавающей точкой) разделенные пробелами.
Примерно такого формата:
10 11,2 6 3 5 6,11
Так же, я пытался использовать ниженаписанный код, который позволяет ввести в TextBox только числа, и в случае чего заменяет разделитель на нужный.
spoilerprivate void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
// Правильными символами считаются цифры,
// запятая, <Enter> и <Backspace>.
// Будем считать правильным символом
// также точку, на заменим ее запятой.
// Остальные символы запрещены.
// Чтобы запрещенный символ не отображался
// в поле редактирования,присвоим
// значение true свойству Handled параметра e
if ((e.KeyChar >= '0') && (e.KeyChar <= '9'))
{
// цифра
return;
}
if (e.KeyChar == '.')
{
// точку заменим запятой
e.KeyChar = ',';
}
if (e.KeyChar == ',')
{
TextBox textBox = sender as TextBox;
if (textBox.Text.IndexOf(',') != -1)
{
// запятая уже есть в поле редактирования
e.Handled = true;
}
return;
}
if ( Char.IsControl (e.KeyChar) )
{
// <Enter>, <Backspace>, <Esc>
if ( e.KeyChar == (char) Keys.Enter)
// нажата клавиша <Enter>
// установить курсор на кнопку OK
button1.Focus();
return;
}
// остальные символы запрещены
e.Handled = true;
}
но у меня совершенно не получается задать ему логику, чтобы между пробелами можно было вводить только числа, чтобы был только 1 разделитель.
Возможно ли это сделать через обработчик событий, дабы не вызывать ошибку/повторный ввод для пользователя.
За любые наводки буду очень благодарен.
Спасибо!