Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.09.2011
Сообщений: 51
1

Как создать правильно новый класс и переопределить его метод

21.09.2011, 00:17. Просмотров 2775. Ответов 9
Метки нет (Все метки)


Необходимо создать новый класс родителем которого будет textBox в котором будет прикручено:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        private void textBox5_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar != 8 && (e.KeyChar < 48 || e.KeyChar > 57))
            {
                if (!Char.IsDigit(e.KeyChar))
                {
                    if (Convert.ToInt32(textBox5.Text) <= 100 && Convert.ToInt32(textBox5.Text) >= 0)
                    {
                        e.Handled = true;
                    }
                    else
                    {
                        MessageBox.Show("Значение не может быть больше 100 или меньше 0!");
                    }
                }
            }
        }
Если кому не сложно, накидайте плз пример.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.09.2011, 00:17
Ответы с готовыми решениями:

Как переопределить класс integer в свой класс ('целочисленный')?
как переопредельть класс Int32 в свой класс ('целочисленный') я писал: class целочисленный :...

Как создать новый класс без перекомпиляции
Здравствуйте. Необходимо сделать графический редактор в C#, в котором можно было бы создавать новые...

Как наследовать и переопределить метод?
Доброго времени суток! Такой вопрос - можно ли наследовать метод и при этом переопределить его?...

Как правильно переопределить класс DataColumn?
Нужно добавить новое свойство для столбцов таблицы данных. Поскольку таблица - коллекция объектов...

9
Level 2
400 / 274 / 48
Регистрация: 22.11.2010
Сообщений: 785
Записей в блоге: 1
21.09.2011, 01:17 2
Не очень понял, поэтому воздержусь от ответа.
0
0 / 0 / 0
Регистрация: 17.09.2011
Сообщений: 51
21.09.2011, 01:23  [ТС] 3
В общем у меня не мало текстбокс и других полей данные которых необходимо контролировать аналогичным образом как продемонстрировано выше. Мне посоветовали создать новый класс, и переопределить его методы используя код выше. Суть в том что бы не дублировать многократно один и тот же код.
0
Level 2
400 / 274 / 48
Регистрация: 22.11.2010
Сообщений: 785
Записей в блоге: 1
21.09.2011, 01:26 4
Ну так прикрепите вот этот метод к событию KeyPress всех ваших Controls и будет у вас один метод на все TextBox'ы
0
0 / 0 / 0
Регистрация: 17.09.2011
Сообщений: 51
21.09.2011, 01:31  [ТС] 5
Как это сделать?=) Я в шарпе еще плохо шарю, только начал изучать=)
0
Злой няш
1949 / 1384 / 508
Регистрация: 05.04.2010
Сообщений: 2,627
21.09.2011, 01:32 6
Так?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    class MyTextBox : TextBox
    {
        public MyTextBox()
        {
            this.KeyPress += new KeyPressEventHandler(MyTextBox_KeyPress);
        }
 
        private void MyTextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar != 8 && (e.KeyChar < 48 || e.KeyChar > 57))
            {
                if (!Char.IsDigit(e.KeyChar))
                {
                    if (Convert.ToInt32(this.Text) <= 100 && Convert.ToInt32(this.Text) >= 0)
                    {
                        e.Handled = true;
                    }
                    else
                    {
                        MessageBox.Show("Значение не может быть больше 100 или меньше 0!");
                    }
                }
            }
        }
    }
2
Level 2
400 / 274 / 48
Регистрация: 22.11.2010
Сообщений: 785
Записей в блоге: 1
21.09.2011, 01:32 7
Как создать правильно новый класс  и переопределить его метод


Нужно каждому из TextBox'ов в окне свойств/событий написать имя вашего метода. Это будет означать то, что при срабатывании события KeyPress все Controls будут ссылаться на один и тот же метод.
1
0 / 0 / 0
Регистрация: 17.09.2011
Сообщений: 51
21.09.2011, 03:18  [ТС] 8
Спасибо, очень помогли, теперь не придется тонну лишнего кода создавать :3

Добавлено через 1 час 38 минут
Такой вопрос, как сделать правильно этот класс 'глобальным', что бы он отображался во всех формах? Я поместил его в програм, и сделал публичным, однако в формах не видно метода.
0
Злой няш
1949 / 1384 / 508
Регистрация: 05.04.2010
Сообщений: 2,627
21.09.2011, 07:15 9
Цитата Сообщение от Bezarius Посмотреть сообщение
Такой вопрос, как сделать правильно этот класс 'глобальным', что бы он отображался во всех формах? Я поместил его в програм, и сделал публичным, однако в формах не видно метода.
Только так: создать новый cs-файл (желательно) или написать уже в готовом этот класс внутри какого-нибудь своего namespace, к примеру:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
namespace My
{
    public class A
    {
         // Много кода.
    }
 
    public class B
    {
         // Много кода.
    }
 
    // И так далее...
}
А дальше просто подключать этот namespace в нужных cs-файлах:
C#
1
using My;
Или можно и не подключать, тогда где-то в коде придется писать так:
C#
1
2
3
4
5
// Выше код.
My.A a = new My.A(); // Я к тому, что придется писать этот namespace как приставу для классов.
// или
My.B b = new My.B();
// Ниже код.
1
0 / 0 / 0
Регистрация: 17.09.2011
Сообщений: 51
21.09.2011, 16:08  [ТС] 10
Спасибо, сейчас буду пробовать=)

Добавлено через 15 минут
Собственно решил вопрос применения по другому. Во первых не нужно где либо указывать эвент. Во вторых все глобально и просто.

При создании текст боксов просто указываю на свой класс(выше код):

C#
1
2
this.textBox1 = new Program.MyTextBox();
private Program.MyTextBox textBox1;;
И все работает как нужно, спасибо всем за помощь=)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.09.2011, 16:08

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

Как правильно переопределить класс DataColumn в VB.NET?
Можно ли переопределить системный класс в VB.NET, так чтобы переопределенный класс использовался в...

Унаследовать класс MaskEdit и переопределить его процедуру
Я пытаюсь переопределить процедуру ValidateError в классе MaskEdit чтобы избежать показа ошибки...

Переопределить метод/класс, который описан в другом модуле без наследования
Итак, есть желание работать над django saleor, но его архитектура совсем не модульная, тоесть...

Создать класс Str (символьная строка). Переопределить оператор присвоения.
Помогите решить с обяснениями. Создать класс Str (символьная строка). Переопределить оператор...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.