Показать сообщение отдельно
Старый 08.02.2024, 18:36   #5  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
274 / 837 (28) +++++++
Регистрация: 23.10.2012
Версия ieframe.dll зависит от версии OS.
Webview2 - для целей Аксапты подходит тот, что относится к windows forms (Microsoft.Web.WebView2.WinForms).
Целевой объект, который нужно добавить в Аксапту - Microsoft.Web.WebView2.WinForms.WebView2, наследник от System.Windows.Forms.Control.
Проблема здесь в связи этого объекта, который создать не сложно, с самой формой.

В windows forms форма - класс наследник от System.Windows.Forms.Form, она же является наследником от System.Windows.Forms.Control.
Только форма Аксапты что-то своё.
Объектов Аксапты наследованных от System.Windows.Forms.Control по пальцам пересчитать. Как ни странно один из таких объектов - ActionPane.
В теории можно сконвертировать ActionPane в System.Windows.Forms.Control
X++:
ptr = new System.IntPtr(ActionPane.hWnd());
control = System.Windows.Forms.Control::FromHandle(ptr);
Получить ссылку на список контролов входящих в состав данного:
X++:
collection = control.get_Controls();
где collection это System.Windows.Forms.Layout.ArrangedElementCollection.
Ну и добавить в него созданный экземляр webview2 через функцию add.
Выглядит куда проще инициализировать саму форму .net из X++ и добавить в целевой контрол.

Последний раз редактировалось Товарищ ♂uatr; 08.02.2024 в 18:39.
За это сообщение автора поблагодарили: Logger (10).