Форум программистов, компьютерный форум, киберфорум
C/C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
11 / 11 / 0
Регистрация: 16.09.2013
Сообщений: 75

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

30.11.2015, 10:50. Показов 1468. Ответов 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
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
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
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
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
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
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
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
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
3406 / 2177 / 354
Регистрация: 13.01.2012
Сообщений: 8,444
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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru