Нужно добавить в текстбокс ограничение ввода, что бы вводились только цифры и знак ",", а знак "." автоматически менялся на ",". Так же есть условие что если поле пустое то воодится "0,". При этом должен работать бекспейс и другие системные кнопки.
Вот что получилось
Код:
private void X1_1_KeyPress(object sender, KeyPressEventArgs e) { { if ((e.KeyChar >= '0') && (e.KeyChar <= '9')) return; if (e.KeyChar >= '.') e.KeyChar = ','; if (e.KeyChar == ',') { if (X1_1.Text.IndexOf(',') != -1) e.Handled = true; if (X1_1.Text.Length == 0) { e.Handled = true; X1_1.Text = "0,"; } return; } if (e.KeyChar == '-') { if (X1_1.Text.IndexOf('-') != -1) e.Handled = true; return; } } }
Но проблема в том, что программа реагирует на нажатия остальных символов, при этом вводит "," или "0," в зависимости от наполнения текстбокса (так если бы я нажимал "."). Подскажите пожалуйста, в чем может быть проблема? Еще интересует как можно сделать что бы после автозамены на "0," курсор ввода перемещался в конец, после запятой.
Member
Статус: Не в сети Регистрация: 21.01.2010 Откуда: ... и куда ...
По-хорошему, отнаследуйте класс от TextBox-а, и в нем уже пропишите внутренние обработки. Иначе вешать на каждый такой компонент обработчик в основной форме - не есть хорошо. А так - свой новый компонент просто кидаете на форму и он уже работает, без привязок лишних.
_________________ Если на узкой лесной тропе вам повстречался медведь, не теряйтесь, сразу бейте его по морде обгаженными трусами.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения