Как правильно реализовать производный от System.Windows.Forms.Control
класс, в котором используется собственный механизм создания дескриптора окна?
Cкажем, есть сторонняя библиотека, создающая окно Windows и возвращающая его дескриптор.
А затем привязать полученный дескриптор окна Windows к контролу (т. е. сохранить его NativeWindow/Handle
)?
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() {
// Здесь нужно обязательно вызвать base.CreateHandle()
// для изменения private field state,
// но он сам создает handle?
var handle = CreateWindow();
// Почему-то происходит повторный вход в CreateHandle
// в момент вызова CreateWindow,
// вероятно из Control/NativeWindow WndProc.
// Как теперь ассоциировать полученный handle с MyControl,
// т. е. что-то вроде:
(WindowTarget as NativeWindow)?.AssignHandle(handle);
}
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Рассмотрим простой класс:
я начинающий в c#Написана довольно большая консольная программа в ней множество раз получается массив методом system