powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Интеграция
44 сообщений из 44, показаны все 2 страниц
Интеграция
    #34806742
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень хочу сделать элемент управления ActiveX и положить его на форму, разработанную на Delphi 7. Есть способ, правда он недокументированный:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    // тут всякие атрибуты для COM Expose
    public class MyBeautifulControl : UserControl, IMyBeautifulControl 
    {
        [ComRegisterFunction()]
        public static void RegisterClass(string key)
        {
            using (RegistryKey k = Registry.ClassesRoot.OpenSubKey(TrimClassesRoot(key), true))
            {
                RegistryKey ctrl = k.CreateSubKey("Control");
                ctrl.Close();
            }
        }

        [ComUnregisterFunction()]
        public static void UnregisterClass(string key)
        {
            using (RegistryKey k = Registry.ClassesRoot.OpenSubKey(TrimClassesRoot(key), true))
                k.DeleteSubKey("Control", false);
        }
    }
Суть метода состоит в том, что необходимо при регистрации COM объекта пометить, что он является контролом. Получается, что .Net Control реализует все необходимые интерфейсы, но почему-то не регистрируется в реестре как ActiveX Control. В .Net Framework 2.0 "это" вроде работает нормально. Вопрос в следующем. Какова вероятность того, что в будущих версиях .Net Framework "это" перестанет работать? Интересно Ваше мнение.
...
Рейтинг: 0 / 0
Интеграция
    #34808259
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?
...
Рейтинг: 0 / 0
Интеграция
    #34808336
maybeleo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К? оно?
...
Рейтинг: 0 / 0
Интеграция
    #34808413
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maybeleo Алексей К? оно?
MSDNRegistry Entry
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\

{CLSID}\Control

Remarks
This optional entry is used by containers to fill in dialog boxes. The container uses this subkey to determine whether to include an object in a dialog box that displays ActiveX Controls. A control can omit this entry if it is designed to work only with a specific container and therefore does is not intended to be inserted in other containers.
Да, это оно. Собственно, выделенное жирным и настораживает. Я даже знаю, что этим specific container-ом является Internet Explorer. К сожалению, я не знаю более разумного способа вставить контрол из .Net в Delphi.

В принципе, там необязательно использовать ActiveX. Задача, чтобы на .Net было разработано содержимое MDI Child формы. Мне показалось, что наиболее разумно MDI Child форму сделать в Delphi, а на неё положить "ActiveX.Net".
...
Рейтинг: 0 / 0
Интеграция
    #34808457
maybeleo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КСобственно, выделенное жирным и настораживает. Я даже знаю, что этим specific container-ом является Internet Explorer. К сожалению, я не знаю более разумного способа вставить контрол из .Net в Delphi.

В принципе, там необязательно использовать ActiveX. Задача, чтобы на .Net было разработано содержимое MDI Child формы. Мне показалось, что наиболее разумно MDI Child форму сделать в Delphi, а на неё положить "ActiveX.Net".Имхо, это вполне нормальный способ (все остальное мне видится только через большую ж...). Насчет будущих версий - так WinForms вроде менятся не будет... А значит, и способ, каким .NET контролы будут видны для натива, не поменяется.
...
Рейтинг: 0 / 0
Интеграция
    #34808513
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maybeleoвсе остальное мне видится только через большую ж...Вчера целый день колдовал в виндовыми хэндлами, изучал реализацию MDI в WinForms и VCL. В итоге MDI форма получилась, но коряво. Разместить контрол на Delphi форме вроде получилось. Не получилось изменение фокуса в нём по кнопке Tab. Наверняка ещё много чего не получилось, но я просто пока не заметил. :-) Полная ж@па. В общем ладно, похоже вариантов больше нет. Остановлюсь на COM Expose + ActiveX Control.
...
Рейтинг: 0 / 0
Интеграция
    #34808521
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maybeleoНасчет будущих версий - так WinForms вроде менятся не будет... А значит, и способ, каким .NET контролы будут видны для натива, не поменяется.Очень на это надеюсь. :-)
...
Рейтинг: 0 / 0
Интеграция
    #34808602
maybeleo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КНе получилось изменение фокуса в нём по кнопке TabЭто известный прикол. Когда-то я как-то решал такую проблемку, точно уже не помню, как. По-моему, в хосте ActiveX-компонента отдельно засылал такое событие в WndProc самого ActiveX-компонента. А в нем, при достижении "последнего" контрола, слал нажатие Tab-а "наверх", хосту компонента. Примерно так, конечно, немного гемморно. Ну да в сети можно нарыть примеры работающего решения, это точно, т.к. лажа сия, повторюсь, известная.
ЗЫ. <joke>Может, 1 известный дельфи-гуру подскажет точнее? :)</joke>
...
Рейтинг: 0 / 0
Интеграция
    #34808827
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maybeleo Алексей КНе получилось изменение фокуса в нём по кнопке TabЭто известный прикол. Когда-то я как-то решал такую проблемку, точно уже не помню, как. По-моему, в хосте ActiveX-компонента отдельно засылал такое событие в WndProc самого ActiveX-компонента. А в нем, при достижении "последнего" контрола, слал нажатие Tab-а "наверх", хосту компонента. Примерно так, конечно, немного гемморно. Ну да в сети можно нарыть примеры работающего решения, это точно, т.к. лажа сия, повторюсь, известная.
ЗЫ. <joke>Может, 1 известный дельфи-гуру подскажет точнее? :)</joke>С ActiveX там вроде нормально, есть одна трабла, но её описание где-то раньше видел в MSDN. Проблема с Tab-ом была, когда я .Net Control размещал на "дельфийской" форме с помощью SetParent из WinAPI.
...
Рейтинг: 0 / 0
Интеграция
    #34941782
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пипец кароче...
1. В ActiveX.Net создаём PropertyGrid.Net.
2. В "MDI child форма".Delphi7 создаём ActiveX.Net.

PropertyGrid начинает дико тормозить с при отрисовке. Скорость отрисовки напрямую зависит от количества видимых ячеек. Тот же PropertyGrid в обычном .Net приложении работает нормально. Кто-нибудь может объяснить природу траблы?
...
Рейтинг: 0 / 0
Интеграция
    #34942144
Volhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КПипец кароче...
1. В ActiveX.Net создаём PropertyGrid.Net.
2. В "MDI child форма".Delphi7 создаём ActiveX.Net.

PropertyGrid начинает дико тормозить с при отрисовке. Скорость отрисовки напрямую зависит от количества видимых ячеек. Тот же PropertyGrid в обычном .Net приложении работает нормально. Кто-нибудь может объяснить природу траблы?

ето от природы активХ =)
...
Рейтинг: 0 / 0
Интеграция
    #34942159
maybeleo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КИ это все время так, или только при первой прорисовке пропертигрида?
...
Рейтинг: 0 / 0
Интеграция
    #34942178
Volhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Volhv Алексей КПипец кароче...
1. В ActiveX.Net создаём PropertyGrid.Net.
2. В "MDI child форма".Delphi7 создаём ActiveX.Net.

PropertyGrid начинает дико тормозить с при отрисовке. Скорость отрисовки напрямую зависит от количества видимых ячеек. Тот же PropertyGrid в обычном .Net приложении работает нормально. Кто-нибудь может объяснить природу траблы?

ето от природы активХ =)


в актив Х - не стоит запихивать часто перерисовываемые обьекты - потому что показывается картинка а не прямая отрисовка (буферизируемая кароче)
...
Рейтинг: 0 / 0
Интеграция
    #34942179
Volhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по етому в обычном приложении обновляется только регион - а в ActiveX - весь блок контролла
...
Рейтинг: 0 / 0
Интеграция
    #34942246
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maybeleoИ это все время так, или только при первой прорисовке пропертигрида?Всё время. При вызове PropertyGrid.Refresh();
Volhvето от природы активХ =)
Ну вообще странно. В этом же контроле находится мегатормозной DataGridView. Отрисовывается не хуже чем обычно. Скрываем панель с PropertyGrid-ом - всё нормализовывается. Резайзим SplitContainer, чтобы в PropertyGrid отображалась одна ячейка - всё летает. Ладно, завтра дальше буду разбираться. Похоже весёлые будут выходные.
...
Рейтинг: 0 / 0
Интеграция
    #34942332
maybeleo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВсё время. При вызове PropertyGrid.Refresh();Так-так... Именно при рефреше? Т.е. если у него позвать Invalidate() + Update(), а не Refresh(), эффект тот же? (смотрю в рефлекторе на евойный рефреш)
...
Рейтинг: 0 / 0
Интеграция
    #34942348
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maybeleo Алексей КВсё время. При вызове PropertyGrid.Refresh();Так-так... Именно при рефреше? Т.е. если у него позвать Invalidate() + Update(), а не Refresh(), эффект тот же? (смотрю в рефлекторе на евойный рефреш)Пока ещё не пробовал. Спасибо. Завтра попробую.
...
Рейтинг: 0 / 0
Интеграция
    #34943580
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то странно он себя ведёт:

Refresh() - ~300 милисекунд
Invalidate() + Update() - ~1 милисекунда

Просто перерисовка происходит быстро. Долго происходит обновление значений свойств + перерисовка. Ладно, ещё поэкспериментирую.
...
Рейтинг: 0 / 0
Интеграция
    #34943590
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там у меня подсоединён CustomTypeDescriptor. Если в GetProperties возвращается та же коллекция PropertyDescriptor-ов, то всё работает быстро. А у меня она каждый раз пересоздаётся. Попробую по-другому написать. Всем спасибо. :-))
...
Рейтинг: 0 / 0
Интеграция
    #34943592
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё, проверил. Нельзя каждый раз создавать новую PropertyDescriptorCollection.

ЗЫ: странно, что в обычном .Net приложении работало нормально...
...
Рейтинг: 0 / 0
Интеграция
    #34944056
maybeleo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КВсё, проверил. Нельзя каждый раз создавать новую PropertyDescriptorCollection.

ЗЫ: странно, что в обычном .Net приложении работало нормально...Хи-хи, вот я так и подумал.
ЗЫ. Алексей, если будет повод, не могли бы Вы как-нить на досуге проверить скорость работы рефлексии, когда что-то нетовское оформлено в виде ActiveX и хостится в нативном приложении? Косяк, как Вы увидели, какой-то с этим есть, только действительно непонятно, почему...
...
Рейтинг: 0 / 0
Интеграция
    #34944148
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maybeleoпроверить скорость работы рефлексииА там у меня рефлексии как таковой нет. Там обращение идёт через мой наследник от CustomTypeDescriptor + MyPropertyDescriptor. Дальше оно обращается к ICustomTypeDescriptor реализации в DataRowView.

ЗЫ: Если встречу там какие-нибудь траблы с рефлекшеном - напишу. Пока кроме недавней проблемы траблов больше не замечено.
...
Рейтинг: 0 / 0
Интеграция
    #34966925
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Условия задачи те же. Имеем форму на Delphi 7. На ней лежит ActiveX.Net. Возникла следующая проблема. Неправильно обрабатываются клавиши "вправо", "влево", "вверх" и "вниз". Например, когда фокус ввода находится в TextBox, вместо перемещения курсора происходит изменение фокуса. Если поместить тот же контрол на форму в Excel 2003, то все работает нормально. Интересуют следующие вопросы:

1. Почему такое имеет место быть в Delphi?
2. Ваше мнение о моём решении проблемы. Чего я ещё мог не учесть? В каких условиях это может не работать?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
//экспортируемый контрол
public class MyControl : UserControl, IMyControl
{
        #region Arrow Keys Management

        private const int WM_GETDLGCODE = 0x0087;
        private const int WM_KEYDOWN = 0x0100;
        private const int WM_KEYUP = 0x0101;

        private const int DLGC_WANTARROWS = 0x0001;

        [DllImport("User32.dll")]
        private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);

        protected override void WndProc(ref Message m)
        {
            if (m.Msg == WM_GETDLGCODE)
            {
                m.Result = (IntPtr)DLGC_WANTARROWS;
                return;
            }

            if (m.Msg == WM_KEYDOWN || m.Msg == WM_KEYUP)
            {
                int keyCode = (int)m.WParam;
                if (keyCode == (int)Keys.Left || keyCode == (int)Keys.Right ||
                    keyCode == (int)Keys.Up || keyCode == (int)Keys.Down)
                {
                    Control activeControl = FormUtils.GetActiveControl(this);
                    SendMessage(activeControl.Handle, m.Msg, m.WParam, m.LParam);
                    return;
                }
            }

            base.WndProc(ref m);
        }

        #endregion
}

public static class FormUtils
{
        public static Control GetActiveControl(Control ac)
        {
            while (ac != null && ac is IContainerControl)
                ac = ((IContainerControl)ac).ActiveControl;
            return ac;
        }
}
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Интеграция
    #39129459
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Очень интересует данная тема.
Есть ли какой-нибудь рабочий пример ActiveX контрола? Весь тырнет перерыл... все как-то про COM, а данная тема так нигде нормально не раскрыта...
...
Рейтинг: 0 / 0
Интеграция
    #39129783
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Интеграция
    #39129898
AlexUser987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, страшные вещи вы тут пишете. Это будни поддержки замогильного кода, или сейчас модно эктив иксами по формам разбрасываться?
...
Рейтинг: 0 / 0
Интеграция
    #39130408
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexUser987Блин, страшные вещи вы тут пишете. Это будни поддержки замогильного кода, или сейчас модно эктив иксами по формам разбрасываться?
Бывают задачи, которые можно решить только написанием ActiveX. В моем случае это приложение системы эл. документооборота в котором можно создавать свои формы и вешать несколько контролов, которые идут вместе с этим ПО. Таких систем на постсоветском пространстве не так много и в во всех этих системах проблема с ограниченным количеством и ограниченым функционалом этих контролов. Но зато у этих систем есть возможность подключать ActiveX. Вроде бы бери себе MS Forms 2.0 и в путь, но и тут натыкаемся на то, что часть из контролов глючит, не у всех установлено (идет с MS Office), и тоже не имеет всех "распрекрас" современных контролов того же FW.
Если Вы знаете уже писаные ActiveX компоненты или как вытянуть элементы Windows Forms другим способом, буду признателен за подсказку.
...
Рейтинг: 0 / 0
Интеграция
    #39130414
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К maybeleoпропущено...
оно?
MSDNRegistry Entry
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\

{CLSID}\Control

Remarks
This optional entry is used by containers to fill in dialog boxes. The container uses this subkey to determine whether to include an object in a dialog box that displays ActiveX Controls. A control can omit this entry if it is designed to work only with a specific container and therefore does is not intended to be inserted in other containers.
Да, это оно. Собственно, выделенное жирным и настораживает. Я даже знаю, что этим specific container-ом является Internet Explorer. К сожалению, я не знаю более разумного способа вставить контрол из .Net в Delphi.

В принципе, там необязательно использовать ActiveX. Задача, чтобы на .Net было разработано содержимое MDI Child формы. Мне показалось, что наиболее разумно MDI Child форму сделать в Delphi, а на неё положить "ActiveX.Net".CLR host? У Рихтера про это есть. Я так в своё время .NET формы в Centura интегрировал.

Немного C++, немного PInvoke, и работает.
...
Рейтинг: 0 / 0
Интеграция
    #39130415
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ashoorup, я Вам своё предыдущее сообщение адресую.
...
Рейтинг: 0 / 0
Интеграция
    #39130431
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANA , спасибо! Ушел в изучение.
...
Рейтинг: 0 / 0
Интеграция
    #39130742
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то просветления никакого не наступило.. skyANA, как вообще можно воспользоваться .NETовскими контролами не через ActiveX?
...
Рейтинг: 0 / 0
Интеграция
    #39130788
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Через CLR host можно как я понял в неуправляемом коде запустить CLR и загрузить сборку и например нужный нам метод.
Но теперь проблема, в том что у меня неуправляемая среда VBScript :) и как там сделать
Код: plaintext
1.
2.
#include <metahost.h>
#pragma comment(lib, "mscoree.lib")


без понятия:)
...
Рейтинг: 0 / 0
Интеграция
    #39130838
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ashoorupкак вообще можно воспользоваться .NETовскими контролами не через ActiveX?Ну я же дал ссылку на работающий пример.
...
Рейтинг: 0 / 0
Интеграция
    #39130916
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КAshoorupкак вообще можно воспользоваться .NETовскими контролами не через ActiveX?Ну я же дал ссылку на работающий пример.
По ссылке создание ActiveX. У меня все получилось создать и все работает. Спасибо!
Но теперь я еще заинтересовался темой Хостинга CLR . Если я правильно понял, то можно из неуправляемого кода взять сборки и работать с ними...
Отсюда вопрос: а можно ли таким способом "вытянуть" контрол на свою форму?
...
Рейтинг: 0 / 0
Интеграция
    #39130926
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AshoorupОтсюда вопрос: а можно ли таким способом "вытянуть" контрол на свою форму?Если я правильно понял что предложил skyANA, то придётся самому реализовывать работу с ActiveX Controls Interfaces . На мой взгляд проще взять за основу родной экспорт ActiveX и дополнить его костылями, если вдруг что-то там не устроит.

С другой стороны, я напрямую с CLR host не работал, может и не всё так страшно, пусть лучше skyANA прокомментирует.
...
Рейтинг: 0 / 0
Интеграция
    #39130947
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОК. Ждем ответ от skyANA
Алексей К , еще такой вопрос: возможно ли сделать так, чтобы в одной сборке по сути один ActiveX было несколько контролов с разными свойствами? Допустим по умолчанию все контролы скрыты и не отображаются, а я уже в своем приложении делаю видимым нужный мне контрол и работаю с ним. Или идея похожа на БредСивойКобылы ?:)
...
Рейтинг: 0 / 0
Интеграция
    #39130954
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КAshoorupОтсюда вопрос: а можно ли таким способом "вытянуть" контрол на свою форму?Если я правильно понял что предложил skyANA, то придётся самому реализовывать работу с ActiveX Controls Interfaces .Хотя нет, можно обойтись и без интерфейсов AcitveX. Зная дескриптор родительской формы можно делать так:
Код: c#
1.
2.
var ctl = new UserControl1();
ctl.Parent = Control.FromHandle(ParentWindowHandle);
...
Рейтинг: 0 / 0
Интеграция
    #39130959
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AshoorupОК. Ждем ответ от skyANA
Алексей К , еще такой вопрос: возможно ли сделать так, чтобы в одной сборке по сути один ActiveX было несколько контролов с разными свойствами? Допустим по умолчанию все контролы скрыты и не отображаются, а я уже в своем приложении делаю видимым нужный мне контрол и работаю с ним. Или идея похожа на БредСивойКобылы ?:)В одной сборке могут жить много контролов, если я правильно понял постановку задачи. :-)
...
Рейтинг: 0 / 0
Интеграция
    #39130977
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КВ одной сборке могут жить много контролов, если я правильно понял постановку задачи. :-)
Но в списке на вставку нужного контрола будет несколько, а хотелось бы 1. Хотя вот думаю... а нафик... удобно ли это потом будет...:)
...
Рейтинг: 0 / 0
Интеграция
    #39131308
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AshoorupОК. Ждем ответ от skyANA на чем написаны "свои формы" и что конкретно в них нужно встроить?
...
Рейтинг: 0 / 0
Интеграция
    #39131501
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAна чем написаны "свои формы" и что конкретно в них нужно встроить?
Смотря какая система. Одна система писана на C++, другая на Delphi третья возможно на .NET. Другое дело, что работа уже разработчиков(пользователей) этих систем с формами и компонентами предоставляемой этой средой ведется на скриптовых языках. У одних это свой скриптовый язык причем русскими операторами (1С: Предприятие). У других это VBS у третьих JS и VBS. Но у всех почему-то встроенные элементы управления не богаты функционалом. У всех систем есть возможность подключить и COM и ActiveX. Вот я и хочу расширить функционал по сути всех этих систем...
Встроить в формы нужно как можно больше элементов из Windows.Forms .NETовских
...
Рейтинг: 0 / 0
Интеграция
    #39133444
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А PropertyPages у кого-нибудь на C# получалось?
...
Рейтинг: 0 / 0
Интеграция
    #39154553
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может кто подскажет по таким вопросам:
1. Если свойство у ActiveX контрола { get; set; } ,то в редакторе кода IntelliSense работает и свойство отображается. Но если есть только { set; }, то не отображается. В чем причина?
2. По умолчанию интерфейс IUnknown есть у любого ActiveX контрола, и естественно с ним есть открытые методы: AddRef(), Release(), и т.д. Как их убрать их IntelliSense. Знаю что есть специальственный атрибут, но где его писать?
...
Рейтинг: 0 / 0
Интеграция
    #39155233
Ashoorup
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По первому вопросу экспериментировал с разными атрибутами - фифекта не принесло :(
Код: c#
1.
2.
[EditorBrowsable(EditorBrowsableState.Never)]
[ComVisible(true)]



А по второму у меня интерфейс IDispatch, а не IUnknown. Но от этого не легче. Я хочу чтобы методы (7шт.) IDispatch не отображались в редакторе кода, но вот сомневаюсь, что это возможно. Потому как private делать их нельзя, а все что public, то по умолчанию видно в редакторе. Возможно атрибут [EditorBrowsable(EditorBrowsableState.Never)] для этих методов сработает, но я не знаю где их найти...
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Интеграция
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]