Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вставка, обработка, MaskedTextBox 
:(
    Опции темы
Springtime
Дата 31.1.2008, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 25.10.2006
Где: Россия, Тюмень

Репутация: нет
Всего: 2



Всем привет!
дорабатываю контрол MaskedTextBox, на фильтрацию ввода вещественных чисел, ip адресов и т.д.
только вот проблема, с клавиатуры фильтруются числа и буквы, а при вставки из буфера нет... т.е. как задать и эту обработку?

Обработка для вещественных чисел:
Код

private void MaskDecimal(KeyPressEventArgs e)
        {
          if (e.KeyChar == (char)3 || e.KeyChar == (char)22 || e.KeyChar == (char)24 || e.KeyChar == (char)26)
            {
                e.Handled = false;
                return;
            }
            e.KeyChar == (char)22)
                if (Char.IsDigit(e.KeyChar) || e.KeyChar == '.' || e.KeyChar == ',' || e.KeyChar == 8 || e.KeyChar == '-')
                {
                    if (this.SelectionLength == this.Text.Length)
                    {
                        if (e.KeyChar != (char)22)
                            this.Text = null;
                    }
                    else
                    {
                        if (ReplaceSelectionOrInsert(e, this.Text.Length))
                            return;
                    }
                    e.Handled = false;
                    errorProvider1.SetError(this, "");
                    string str = this.Text;
                    if (e.KeyChar == '.' || e.KeyChar == ',')
                    {
                        int indx = str.IndexOf('.', 0);
                        if (indx > 0)
                        {
                            e.Handled = true;
                            errorProvider1.SetError(this, "Недопустимо более одного знака .");
                        }
                        int indx1 = str.IndexOf(',', 0);
                        if (indx1 > 0)
                        {
                            e.Handled = true;
                            errorProvider1.SetError(this, "Недопустимо более одного знака ,");
                        }
                    }
                    if (e.KeyChar == '-' && str.Length > 0)
                    {
                        e.Handled = true;
                        errorProvider1.SetError(this, "'-' неверная позиция!");
                    }
                }
                else
                {
                    e.Handled = true;
                    errorProvider1.SetError(this, "Только для цифровых знаков");
                }
            }

--------------------
ICQ: 1fe410f46e7f48f6c721bc866d8294a2
PM MAIL ICQ   Вверх
informatik
Дата 31.1.2008, 08:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 4.11.2007

Репутация: 3
Всего: 6



Привет! Ты обрабатываешь нажатия клавиш. Попробуй к текстбокса использовать событие Validating, тогда при смене фокуса будет выполняться это событие.
--------------------
namespace informatik
PM MAIL   Вверх
Springtime
Дата 31.1.2008, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 25.10.2006
Где: Россия, Тюмень

Репутация: нет
Всего: 2



Цитата(informatik @ 31.1.2008,  08:51)
Привет! Ты обрабатываешь нажатия клавиш. Попробуй к текстбокса использовать событие Validating, тогда при смене фокуса будет выполняться это событие.

мне нужно обработать вставку текста в контрол, в самом контроле, чтобы создать компонент
--------------------
ICQ: 1fe410f46e7f48f6c721bc866d8294a2
PM MAIL ICQ   Вверх
tol05
Дата 31.1.2008, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 36
Всего: 170



ну и что? Ну так подпишись на событие Validating внутри самого контрола
Пример (демонстрирует уровень моего интелекта)  smile 
Код

public class MyButton : Button
    {
        public MyButton()
        {
            Click += oGOGOOOOo;
        }

        private void oGOGOOOOo(object sender, EventArgs e)
        {
            Text = "oGOGOOOOo";
        }
    }

помещаем кнопку на форму, ни одного движения не делаем, просто запускаем и нажимаем....


--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
mr.DUDA
Дата 1.2.2008, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 8
Всего: 232



А событие TextChanged на что ?


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0540 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.