Автоматическое изменение шрифта

Подскажите пожалуйста как сделать так чтоб по заполнению текстбокса шрифт автоматически становился меньше, например максимально в текстбокс помещается 6 символов, при вводе седьмого шрифт автоматически становится меньше и в текстбокс помещается уже 7 символов и т.д.
заодно если подскажите как после каждого третьего символа автоматически вставлять пробел, буду очень признателен )
WinForm ---- Visual Studio 2017 C#

Ловить какое-нибудь событие изменения текста, смотреть textBox.Text.Length.

Размер шрифта как-то так менять можно

textBox.Font = new Font(textBox.Font, 20);

Font Constructor (System.Drawing) | Microsoft Docs

А что вводится? Может проще MaskedTextBox.
C# MaskedTextBox Example - Dot Net Perls

Вводятся числа
сейчас например 100000 выглядит так
хотелось бы чтоб 100 000 было вот так ) только автоматически

Думал можно сделать что то типа
if (textBox1.Text.Length > textBox1.Size) но пишет, что оператор “>” невозможно применить к операнду типа int и size

NumericUpDown умеет это.

Это структура, надо к ее свойствам обращаться. Size Struct (System.Drawing) | Microsoft Docs

Я делал так :laughing:

private void InsertSpace()
        {            
            if (textBox1.Text.Length == 4)
                textBox1.Text = textBox1.Text.Insert(1, " ");            
        }

Но получается только один раз, сейчас попробую NumericUpDown