|
![]() |
#1 |
Участник
|
Разбираю пример из Mibuso,
подключаеться обьект, видны и работают методы, но нет событий в Nav(( Код: Код: [assembly: ClassInterface(ClassInterfaceType.AutoDual)] namespace GridNewDB { [ComVisible(false)] public delegate void DataChangedEvent(string changedPrimaryKeyFrom); [Guid("A26E27C7-E2F8-4d10-9985-5AAEBCEA01B6")] [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)] public interface GridMethod { void ShowGrid(); } [Guid("70BFA011-12EA-4cce-89DB-06755542E96B")] [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIDispatch)] public interface GridForm { void DataChanged(string changePrimaryKeyFrom); } [ProgId("GridNewDB")] [ClassInterface(ClassInterfaceType.None)] [ComSourceInterfaces("GridNewDB.GridForm, GridNewDB")] public partial class Form1 : Form, GridMethod {} //DataChanged("sd") |
|
![]() |
#2 |
Участник
|
А в свойствах переменной Automation установлен признак WithEvents?
|
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
При включенной опции событие видно, но при его вызове слетает нав.
|
|
![]() |
#5 |
Участник
|
Что бы окно отображалось в форме нав я использую такой код
void ShowForm() { IntPtr parentHwnd = GetFocus(); SetParent(this.Handle.ToInt32(), parentHwnd); SetWindowPos(this.Handle, new IntPtr(-2), 0, 0, 0, 0, TOPMOST_FLAGS); this.Visible = true; this.StartPosition = FormStartPosition.Manual; this.Location = new Point(0, 0); } И вызываю эту функцию по таймеру через 1 секунду после запуска формы, иначе окно рисуется в parent формы - в object exployer. Думаю, что проблема тут. |
|