Réglage de la mère d'un usercontrol l'empêche d'être transparent

J'ai créé un simple contrôle de l'utilisateur qui est créé manuellement avec quelque chose comme

MyUserControl ctrl = new MyUserControl();

Le contrôle ont été conçus pour avoir BackColor = Color.Transparent et qui fonctionne très bien, jusqu'à ce que j'ai défini la Parent du contrôle à un formulaire au moment où il prend la couleur de la forme.

Peut sembler transparent, mais ce qu'il fait est de masquer tous les contrôles qui existent sur le formulaire. Je ne suis pas sûr à 100% de son contrôle qui obtient un solide arrière-plan ou quelque chose des thats passe quand je le brancher, ce qui empêche d'autres contrôles à partir de l'affichage.

En gros, si vous faites cela

  • Créer un formulaire
  • Chute d'un bouton
  • Dans le gestionnaire d'événements click pour le bouton, vous effectuez les opérations suivantes

Exemple

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();

Fondamentalement, je veux le contrôle usercontrol à la superposition de l'ensemble de la forme, tout en montrant les sous-tendre les contrôles sur le formulaire (d'où le fond transparent). Je ne veux pas ajouter à la formes de contrôle de la collecte, car il n'appartient pas vraiment à la forme, c'est juste d'être montré ontop de tout le reste

J'ai essayé de faire la même chose, mais sans réglage de la mère, mais alors le contrôle na pas montrer à tous.

Merci!

EDIT: Si je remplace le OnPaintBackground méthode dans le contrôle usercontrol et de prévenir l'arrière-plan de cours de peinture, puis il travaille, cependant que des mess avec les parties transparentes de l'image PNG im peinture dans le contrôle à l'aide DrawImage, qui fait sens.

OriginalL'auteur TheCodeJunkie | 2008-12-17