protected override void OnHandleCreated(EventArgs e) { base.OnHandleCreated(e); if (_designMode || _client != null) { return; } _client = CreateWindow(); if (_client == null) { throw new InvalidOperationException("CreateWindow did not create a client"); } _sponsor.Register((MarshalByRefObject)_client); _client.SetHost(this); SetChildHwnd(_client.Handle); OnWindowCreated(EventArgs.Empty); SetBoundsCore(0, 0, Width, Height, BoundsSpecified.Size); }
protected override void OnHandleDestroyed(EventArgs e) { base.OnHandleDestroyed(e); if (_client != null) { _sponsor.Unregister(); _client.Dispose(); _client = null; } }