Есть много 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 == ',')
{
if (textBox1.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;
}
но в тоже время, мне хотелось бы, чтобы я мог данной функции передать
TextBox в котором производиться ввод, и
button1, на который должен сместиться фокус (дабы не создавать отдельные события KeyPress для каждого TextBox в программе)
Но я не знаю, как мне это сделать, и сделать так, чтобы можно было легко указать событие через VisualStudio