11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75

Как получить WindowsForms (.NET) через ActiveX

30.11.2015, 10:50. Показов 1506. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть приложение, которое может использовать ActiveX элементы(контролы). Например можно использовать Windows Form 2.0
Функционал элементов Windows Form 2.0 довольно слабоват и хотелось бы использовать элементы которые есть в WindowsForms .NET (например DataGridView)

Есть ли уже готовые решения для такой задачи? Возможно ли такое решение впринципе?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.11.2015, 10:50
Ответы с готовыми решениями:

PascalABC.NET, WindowsForms и MediaElement.MediaEnded:RoutedEvent
Доброго времени суток. Есть форма Form1 (System.Windows.Forms), процедура Form1.OnVideoEnd и переменная v:MediaElement: {$reference...

Как получить внешние параметры в ActiveX?
День добрый всем! Есть у меня Activex-компонент. Он должен связываться с сервером и открывать указанный ему файл. Имя файла задаётся...

Как получить доступ к ADOConnection из другой формы в ActiveX-форме
Есть приложение ActiveX, для которого я хочу сделать подчиненную форму. #Скажу сразу - в ActiveX я не нашел возможности создать именно...

12
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
30.11.2015, 12:56
Цитата Сообщение от Shoorup_SCBist Посмотреть сообщение
Возможно ли такое решение впринципе?
если "WindowsForms .NET " предоставляет эти элементы в виде ActiveX, то очевидно такое решение есть

Добавлено через 1 минуту
...как вариант - создать в "WindowsForms .NET " обложку которая будет предоставлять нужные вам элементы в виде ActiveX
0
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75
30.11.2015, 13:15  [ТС]
отрывочные сведения я нашел на просторах, но что-то везде о многом и ни о чем...
Есть .NET bridge похожий на то, что мне надо, но заточенное под определенное приложение, да еще и платное...
Мне бы примерчик как вытянуть из .NET хотя-бы Label со всеми свойствами, событиями и методами, оформив это все в ActiveX.
Из того, что я начитал на просторах, задачка не такая уж и тривиальная...
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
30.11.2015, 14:25
Цитата Сообщение от Shoorup_SCBist Посмотреть сообщение
задачка не такая уж и тривиальная.
я не работал с .NET но чисто теоретически вердикт такой: если создатели среды разработки не подразумевали использование своих Label через ActiveX, то получить их в свое рабство вы сможете исключительно путем написания обертки над ними
0
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
03.12.2015, 16:47
Исходя их исходников, видно что WinForms контролы реализуют те или иные интерфейсы, например class Button реализует некий interface IButtonControl, правда там всего три метода и нельзя забиндить к клику функцию, так что сомнительное удовольствие. Теоретически любой WinForms контрол можно добавить в своё приложение, так как базовый class Control реализует interface IWin32Window со свойством Handle
C#
1
2
3
4
5
6
7
8
9
10
[System.Runtime.InteropServices.Guid("458AB8A2-A1EA-4d7b-8EBE-DEE5D3D9442C"), System.Runtime.InteropServices.InterfaceTypeAttribute(System.Runtime.InteropServices.ComInterfaceType.InterfaceIsIUnknown)]
    [System.Runtime.InteropServices.ComVisible(true)]
    public interface IWin32Window {
    
        /// <include file='doc\IWin32window.uex' path='docs/doc[@for="IWin32Window.Handle"]/*' />
        /// <devdoc>
        ///    <para>Gets the handle to the window represented by the implementor.</para>
        /// </devdoc>
        IntPtr Handle { get; }
    }
Добавлено через 2 часа 58 минут
Плохо знаком с шарпом, а именно с атрибутами, но как я понял из найденных примеров создания COM компонентов в C#, у классов WinForms как минимум нет атрибута с GUID [Guid("/* GUID */")] и интерфесом-источником [ComSourceInterfaces(typeof(/*интерфейс*/))].
Возможно, получить компоненты WinForms всё же как-то можно. Но и в этом случае нужно как минимум знать CLSID самого компонента или фабрики.
1
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75
04.12.2015, 09:14  [ТС]
На данный момент у меня не получилось создать или найти (рабочий) пример создания ActiveX контрола. COM создать получилось, все красиво и прекрасно, а так что бы визуальный контрол...
Прошу помочь в решении простого контрола который хотябы Label отрисует
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
04.12.2015, 09:56
Цитата Сообщение от Operok Посмотреть сообщение
у классов WinForms как минимум нет атрибута с GUID
я так думаю что дело в том что interface != интерфейс COM
0
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75
04.12.2015, 10:07  [ТС]
не могу понять как сборку зарегистрировать так чтобы это не COM объект был а ActiveX...
Взял вот этотпримерчик... но как-то опять все и ни о чем...
0
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
04.12.2015, 11:04
Цитата Сообщение от vxg Посмотреть сообщение
я так думаю что дело в том что interface != интерфейс COM
Подобное даже и не смел подумать. Я к тому, что скорее всего, регистрация ком компонента происходит через атрибуты, примеры регистрации COM компонента в .NET в инете есть. Этих атрибутов у классов WinForms я не наблюдаю.
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
04.12.2015, 12:37
Цитата Сообщение от Operok Посмотреть сообщение
примеры регистрации COM компонента в .NET в инете есть
а в этих примерах вы видели слово interface ?
0
183 / 181 / 66
Регистрация: 15.02.2015
Сообщений: 515
04.12.2015, 12:53
Цитата Сообщение от vxg Посмотреть сообщение
а в этих примерах вы видели слово interface ?
Да
Оно (слово) всего лишь обозначает полностью абстрактный класс, что вы к нему так привязались?
0
Модератор
 Аватар для vxg
3409 / 2180 / 354
Регистрация: 13.01.2012
Сообщений: 8,450
04.12.2015, 15:25
Цитата Сообщение от Operok Посмотреть сообщение
что вы к нему так привязались?
я лишь хочу сказать, что, к примеру, если я на C++ определяю чистый абстрактный класс вида
C++
1
2
3
4
5
class IMyObject
{
public:
    virtual int GetX(/* [out] */ int *x) = 0;
};
это не совсем то же самое что
C++
1
2
3
4
5
6
class IMyObject:
    public IDispatch
{
public:
    virtual HRESULT __stdcall GetX(/* [out] */ int *x) = 0;
};
Добавлено через 55 секунд
...то есть абстрактность не превращает класс в объект COM предоставляющий интерфейс своему окружению
0
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75
10.12.2015, 08:22  [ТС]
UP!
Вопрос все еще висит... Можно ли на C# написать визуальный ActiveX компонент?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.12.2015, 08:22
Помогаю со студенческими работами здесь

Через VK.NET получить все фотографии пользователя
Приветствую, форумчане! Пытаюсь через VK.NET получить все фотографии пользователя, но не могу сообразить в чем ошибка. ...

Использование IE как ActiveX через СWebBrowser2 MFC класс
Доброго времени суток всем. Есть приложение, построенное вокруг класса СWebBrowser2 из MFC, то есть CustomBrowser. Все замечательно...

Как получить доступ к ActiveX серверу на С++, если есть образец на Visual Basic - C++ Builder
Раньше я пользовался Stereoscopic player http://3dtv.at/Downloads/Index_en.aspx , где разработчики этого плеера предоставляли доступ к...

ActiveX Bridje или как превращать ActiveX Control в JavaBean.
Насколько я понял из документации, эта штука позволяет превращать JavaBean в ActiveX Control с дальнейшим использованием этого дела в...

Внедрение кода в метод через WindowsForms и его выполнение
Есть ли какие нибудь методы?


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

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

Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru