Перезапись метода CreateHandle в производном элементе управления - PullRequest
0 голосов
/ 28 апреля 2018

Пусть у нас есть сторонняя DLL, которая создает собственное окно и возвращает его дескриптор.

Я хочу использовать эту функцию в приложении C # WinForms через класс MyControl, основанный на System.Windows.Forms.Control.

Как правильно перезаписать виртуальный защищенный метод Control.CreateHandle в классе, производном от Control?

using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace WinFormsApp {
  public class MyControl : Control {

    [DllImport("MyLib.dll")]
    static extern IntPtr CreateWindow();

    protected override void CreateHandle() {

      // Did to need do invoke a base.CreateHandle()?
      // However, it creates Control.Handle it self.

      var handle = CreateWindow();

      // How to associate returned handle with MyControl instance?

      (WindowTarget as NativeWindow)?.AssignHandle(handle);
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...