Ограничение ввода до и после запятой C#

283
15 апреля 2017, 22:44

В 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 - остальные символы запрещены
        }
    }
}
READ ALSO
Создать PDF c картинкой С#

Создать PDF c картинкой С#

Как с использованием itextsharp сохранить в PDF картинку из picturebox ?

290
Как вставить запятые в тексте перед словами?

Как вставить запятые в тексте перед словами?

Есть текстовый файл, как его подключить к MS Visual Studio и в нем вставлять запятые перед "который", "которая", "которое", "которые", если они не являются...

172
Как выводить меню. Структура mvc .php

Как выводить меню. Структура mvc .php

Как вывести категории новостей в шапку меню, так чтобы не копипастить код каждый раз при добавлении нового actionнужно чтобы меню всегда было...

295
Как правильно составить запрос mod-rewrite?

Как правильно составить запрос mod-rewrite?

Есть архитектура директорий, описываемая такими адресами:

176