Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
ClassTerr
0 / 0 / 0
Регистрация: 23.12.2013
Сообщений: 12
1

Обработка событий Add и др. у SomeCollection

04.04.2015, 19:16. Просмотров 320. Ответов 1
Метки нет (Все метки)

Например:
C#
1
this.Controls.Add(someControl);// После чего .NET делает какие-то свои действия
Как мне сделать что-то вроде такого, без рутинного создания своего класса (если это возможно).
Вот фрагмент для более понятного объяснения
C#
1
2
3
4
5
6
7
8
9
10
11
12
    public class ControlCollection
    {
        public delegate void EmptyDelgate();
        public event EmptyDelgate ControlAdded;
        private List<ControlBase> Controls = new List<ControlBase>();
 
        public void Add(ControlBase c)
        {
            Controls.Add(c);
            ControlAdded();
        }
    }
Пишу мини-Framework для XNA
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.04.2015, 19:16
Ответы с готовыми решениями:

Обработка событий
Создать визуальную форму для работы. Форма должна содержать поля для ввода данных, кнопку для...

Обработка событий
Есть событие. Есть метод-обработчик события, в котором полученные данные обрабатываются и результат...

Создание и обработка событий
Всем добрый день. К данной программе нужно создать какое либо событие. Тема: Создание и...

обработка событий мыши
если на форме находится Picturebox необходимо если левой кнопкой мыши на него щелкнуть и не...

Отложенная обработка событий
Здравствуйте, предположим, у нас есть Логика и Отображение. Отображение подписано на событие...

1
Constantius24
67 / 67 / 42
Регистрация: 30.03.2015
Сообщений: 371
04.04.2015, 19:50 2
Обработка события вызываемого перед добавлением элемента:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
    class MyCollection
    {
        System.ComponentModel.BindingList<string> list = new System.ComponentModel.BindingList<string>();
 
        public MyCollection()
        {
            list.AddingNew += (sender, e) =>
                {
                    string s = (string)e.NewObject;
                    // ...
                };
        }
    }
Или после:
C#
1
2
3
4
5
6
7
            list.ListChanged += (sender, e) =>
                {
                    if (e.ListChangedType == System.ComponentModel.ListChangedType.ItemAdded)
                    {
                        string s = list[e.NewIndex];
                    }
                };
Добавлено через 5 минут
BindingList предоставляет событие изменения списка и добавления нового элемента. Повесив в конструкторе обработчик на нужное событие ты можешь даже не делать его(список) приватным, все, что нужно будет автоматически обрабатываться.

Добавлено через 4 минуты
Я так понял создание своего класса коллекции вообще не требуется, тогда просто создай BindingList<ТвойКласс> и сразу после этого повесь нужные обработчики событий.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.04.2015, 19:50

Обработка событий в UserControl
Интересует как лучше согласно принципап ООП обработать из формы событие , которое происходит в...

Динамическая форма и обработка событий
Доброго времени суток. Возникала потребность динамического создания формы и компонентов на ней,...

Обработка событий вне класса
Здравствуйте. Помогите оценить и дополнить решение. Суть такая: есть 3-4 таблицы, с похожей...


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

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

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