Como criar um controle transparente que funcione sobre outros controles?

Eu tenho um controle (derivado de System.Windows.Forms.Control) que precisa ser transparente em algumas áreas. Eu implementei isso usando SetStyle ():

public TransparentControl()
{
    SetStyle(ControlStyles.SupportsTransparentBackColor, true);
    this.BackColor = Color.Transparent.
}

Agora, isso funciona se não houver controles entre o formulário e o controle transparente. No entanto, se houver outro controle abaixo do controle transparente (que é o caso de uso aqui), ele não funcionará. O controle intermediário não é empate, mas o formulário abaixo é exibido. Posso obter o efeito necessário substituindo CreateParams e configurando o balão WS_EX_TRANSPARENT da seguinte maneira:

protected override CreateParams CreateParams
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.ExStyle |= 0x20; // WS_EX_TRANSPARENT
        return cp;
    }
}

O problema aqui é que elerealment retarda a pintura do controle. O controle já está em buffer duplo, então nada a fazer lá. O impacto no desempenho é tão ruim que é inaceitável. Alguem mais achou este problema? Todos os recursos que posso encontrar sugerem o uso do método nº 1, mas, novamente, isso não funciona no meu caso.

EDIT: Devo observar que tenho uma solução alternativa. Os controles filho (transparentes) poderiam simplesmente se desenhar no objeto Graphics do pai, mas é realmente feio e não gosto da solução (embora possa ser tudo o que tenho).

EDIT2: Então, seguindo os conselhos que recebi sobre como a transparência funciona no .NET, implementei a interface IContainer no meu controle de usuário, que contém os controles transparentes. Eu criei uma classe que implementa o ISite, adiciono meus controles filho à coleção Components do UserControl, a propriedade Container é alinhada corretamente no depurador, mas ainda não recebo um efeito de transparência. Alguém tem alguma idéia

questionAnswers(7)

yourAnswerToTheQuestion