Definir o pai de um controle de usuário evita que ele seja transparente

Eu criei um controle de usuário simples que é criado manualmente com algo como

MyUserControl ctrl = new MyUserControl();

O controle foi projetado para terBackColor = Color.Transparent e isso funciona bem, até eu definir oPai do controle para um formulário no qual ele se transforma na cor do formulário.

Pode parecer transparente, mas o que faz é ocultar todos os controles que existem no formulário também. Não tenho 100% de certeza de que é o controle que obtém um fundo sólido ou algo mais acontece quando eu o conecto, o que impede a exibição de outros controles.

Basicamente, se você fizer isso

Crie um formulárioSolte um botão neleNo manipulador de cliques do botão, faça o seguinte

Exemplo

MyUserControl ctrl = new MyUserControl();
ctrl.Parent = this;
ctrl.BackColor = Color.Transparent;
ctrl.Size = this.Parent.ClientRectangle.Size;
ctrl.Location = this.Parent.ClientRectangle.Location;
ctrl.BringToFront();
ctrl.Show();

Basicamente, quero que o controle do usuário sobreponha todo o formulário, enquanto mostra os controles subjacentes no formulário (daí o plano de fundo transparente). Eu não quero adicioná-lo à coleção de controle de formulários porque ele realmente não pertence ao formulário, apenas está sendo mostrado sobre todo o resto

Tentei fazer o mesmo, mas sem definir o pai, mas o controle não apareceu.

Obrigado!

EDIT: Se eu substituir o método OnPaintBackground no controle do usuário e impedir que o plano de fundo seja pintado, ele funcionará, no entanto, isso atrapalha as partes transparentes de uma imagem PNG que estou pintando no controle usando DrawImage, o que faz sentido.

questionAnswers(1)

yourAnswerToTheQuestion