Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2014, 20:05   #1
JunkieBeat
Пользователь
 
Регистрация: 17.02.2013
Сообщений: 38
По умолчанию Переадресовать событие ребенка на родителя

Здравствуйте. Я создал свой компонент вкладки унаследовав панель, у этой вкладки есть свой Label. Сами вкладки создаются динамически на форме ,и там же на них вешаются события DragOver и DragDrop.

Код:
t.DragOver+=(s,a)=>
            {
                a.Effect = DragDropEffects.Copy;
                DragTab.Left = panel1.PointToClient(MousePosition).X - dragX;
                if (DragTab.Left - DragLeft > 75)
                {
                    Tabs[DragIndex + 1].Left = DragIndex * 150;
                    Tabs[DragIndex] = Tabs[DragIndex + 1];
                    Tabs[DragIndex + 1] = DragTab;
                    DragIndex++;
                    DragLeft = DragIndex * 150;
                }
                else if (DragTab.Left - DragLeft < -75)
                {
                    Tabs[DragIndex - 1].Left = DragIndex * 150;
                    Tabs[DragIndex] = Tabs[DragIndex - 1];
                    Tabs[DragIndex - 1] = DragTab;
                    DragIndex--;
                    DragLeft = DragIndex * 150;
                }
            };
            t.DragDrop += (s, a) =>
            {
                DragTab.Left = DragLeft;
            };
Как можно сделать так что бы когда эти события происходили у Labela вкладки, они обрабатывались событием которое создано на форме (То есть теми что я привел выше).
JunkieBeat вне форума Ответить с цитированием
Старый 10.08.2014, 20:14   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

назначить лейблу эти же обработчики?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 10.08.2014, 20:21   #3
JunkieBeat
Пользователь
 
Регистрация: 17.02.2013
Сообщений: 38
По умолчанию

Уже понял как, нужно было написать в обработчике Lable'а вот это
Код:
private void LabTit_DragDrop(object sender, DragEventArgs e)
        {
            this.OnDragDrop(e);
        }

        private void LabTit_DragOver(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Copy;
            this.OnDragOver(e);
        }
JunkieBeat вне форума Ответить с цитированием
Старый 10.08.2014, 20:44   #4
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

Можно было просто в FormLoad формы (либо в другой метод, который означает полную загрузку твоего компонента) прописать нечто вроде:
Код:
Label.DragDrop += MyComponent_DragDrop;
//сюда добавить еще нужные методы
И написать обработчик
Код:
private void MyComponent_DragDrop(object sender, DragEventArgs e)
{
  //Вы нажали на Label компонента.
}
Так для каждого события, которое надо обработать.

В дизайн тайме все немного проще, там достаточно написать только обработчики у компонента, а затем в событиях сразу выбрать эти обработчики.
alextrof94$gmail.com

Последний раз редактировалось alextrof94; 10.08.2014 в 20:47.
alextrof94 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переадресовать запрос в другую сеть. Air Работа с сетью в Delphi 4 20.07.2012 21:04
Переадресовать электронное письмо wnyp Работа с сетью в Delphi 2 13.07.2012 10:30
Создать условие для ребенка vlsh Софт 34 29.07.2010 22:45
Одинаковый хендл у "родителя" и "ребенка" Alex Cones Общие вопросы Delphi 7 12.05.2010 10:49