В textBox (keyPress) ввод максимально 10 символов цифровых до запятой (000 000 0000) и ограничение символов после запятой в количестве 2 символов, когда я ввожу после запятой эти 2 символа то получается вот так (000 000 0000,00), но когда мне надо отредактировать числа до запятой то получается вот (000 000 0,00), т.е. видно что их тоже 10 символов, но к сожалению формула уже считает все десять символов и до и после запятой. А надо чтобы было 10 символов до запятой, ну и соответственно если надо добавить 2 символа после запятой. Не судите, как смог написать, уж лучше не поясняется.
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text.IndexOf(",") > 0)
if (textBox1.Text.Substring(textBox1.Text.IndexOf(",")).Length > 3)
{
textBox1.Text = textBox1.Text.Substring(0, textBox1.Text.Length - 1);
textBox1.SelectionStart = textBox1.Text.Length - 0;
}
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if ((e.KeyChar >= '0') && (e.KeyChar <= '9'))
{
if (textBox1.Text.Length == 10 && textBox1.Text.Length <= 10)
{
e.Handled = true;
}
return;
}
// Точку заменим запятой
if (e.KeyChar == '.')
{
e.KeyChar = ',';
}
if (e.KeyChar == ',')
{
if ((textBox1.Text.IndexOf(',') != -1) || (textBox1.Text.Length == 0)) // Не более одной запятой и
{ // запятая не может быть первым символом.
e.Handled = true;
}
return;
}
if (Char.IsControl(e.KeyChar))
{
if (e.KeyChar == (char)Keys.Back)
{
// button1.Focus();
return;
}
}
e.Handled = true; // true - остальные символы запрещены
}
}
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники