Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 3
1

ActiveX компонент не содержит MouseDown

07.02.2013, 02:55. Показов 1067. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Для принятия потока от промышленной видеокамеры был использован родной ActiveX компонент. Положил компонент на TableLayoutPanel, настроил основные поля, получил картинку и решил сделать более эргономичные внешний вид/управление. Что-бы дать возможность пользователю перетаскивать окно за любую ее часть, прописал
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        public void LinkAllControls(Control control)
        {
            foreach (Control ctl in control.Controls)
            {
                if ((ctl.GetType().ToString() == "System.Windows.Forms.TableLayoutPanel") ||
                    (ctl.GetType().ToString() == "AxBaslerIPCam.AxVideoControl"))
                {
                    ctl.MouseDown += new MouseEventHandler(Form_MouseDown);
                    ctl.MouseUp += new MouseEventHandler(Form_MouseUp);
                    ctl.MouseMove += new MouseEventHandler(Form_MouseMove);
                }
                LinkAllControls(ctl);
            }            
        }
        void Form_MouseDown(object sender, MouseEventArgs e)
        {...}
 
        void Form_MouseUp(object sender, MouseEventArgs e)
        {...}
 
        void Form_MouseMove(object sender, MouseEventArgs e)
        {...}
В результате окно удалось перетаскивать за любые ее части, кроме как за область ActiveX компонента. Оказалось, что компонент содержит класс AxVideoControl, унаследован от System.Windows.Forms.AxHost. В MSDN написано, что "Событие MouseDown не поддерживается классом AxHost." У меня два вопроса:
1) как решаются подобные проблемы для классов, если те не генерируют некого события.
2) если я, например, написал дочерний от AxVideoControl класс, то как заставить класс генерировать OnMouseDown по нажатию на область, занимаемую компонентом.
Спасибо за любые советы.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2013, 02:55
Ответы с готовыми решениями:

Компонент Image, событие MouseDown
Здравствуйте. На форме расположен компонент Image. Рисуется координатная плоскость и добавлено...

ActiveX компонент.
У меня есть DLL в которой находится ActiveX компонент. А вот TLB файла нет. Можно его как-нибудь...

Activex-компонент Spreadsheet
Создал MDI-ое приложение. В каждом дочернем окне у меня создается компонент Spreadsheet (класс...

Не мону инсталлировать ActiveX компонент
Господа, нужна помощь. Не могу проинсталлировать на свой комп файл aspSmartUploadUtil.dll. При...

3
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 3
09.08.2013, 10:41  [ТС] 2
Не прошло и полгода. Неужели с такой проблемой никто не сталкивался?
0
39 / 37 / 8
Регистрация: 01.08.2013
Сообщений: 106
09.08.2013, 11:47 3
А проблема так и не решилась? Просто интересно
Mouse Events приходится отслеживать через WinAPI, если прогнозируется, что мышка будет выходить за рамки проектных форм. Здесь не совсем понятно, перетаскивание в текущем проекте происходит или же может выходить за рамки? И опять таки, а почему не через Drag&Drop?
0
0 / 0 / 0
Регистрация: 07.02.2013
Сообщений: 3
22.08.2013, 17:27  [ТС] 4
Хотел сделать перетаскивание окна за любую его часть. Задачу, как второстепенную, отложил в сторону - попробую решить с использованием WinAPI.
0
22.08.2013, 17:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2013, 17:27
Помогаю со студенческими работами здесь

Как создать ActiveX компонент
подскажите, как сделать ActiveX компонент? с расширением .ocx

Как добавить компонент ActiveX?
Access97 после установки Win2000XP взамен Win95 ругается в программе на отсутствие компонента...

Сторонняя DLL - ActiveX компонент
Здравствуйте! У меня есть dll с очень полезными функциями. Хочется их использовать под свои нужды,...

Импортировать компонент ActiveX ShockwaveFlash
Чиатл много тем как воспроизвести видео из интернета на форме... Темы: ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru