Einstellung der Eltern von einem Benutzersteuerelement verhindert, dass Sie transparent

Ich habe eine einfache Benutzer-Steuerung, die manuell erstellt, mit so etwas wie

MyUserControl ctrl = new MyUserControl();

Control wurden entwickelt, um BackColor = Farbe.Transparente und das funktioniert auch, bis ich die Eltern des Steuerelements zu einem Formular, an der Zeit verwandelt es sich in der Farbe von der form.

Anhören mag, die transparente, aber was es tut, ist, verstecken sich alle Steuerelemente, die vorhanden sind, auf die form als auch. Ich bin mir nicht 100% sicher sein das die Kontrolle, der bekommt einen soliden hintergrund oder etwas anderes, das ist passiert, wenn ich es hook up, die verhindert, dass andere Steuerelemente angezeigt werden.

Grundsätzlich, wenn Sie dies tun

  • Erstellen Sie ein Formular
  • Drop eine Schaltfläche auf es
  • In der click-Ereignishandler für die Schaltfläche, die Sie tun, die folgenden

Beispiel

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

Grundsätzlich will ich das usercontrol zu überlagern, die gesamte form, während mit der darunterliegenden Steuerelemente auf dem Formular (also transparenter hintergrund). Ich will nicht, um es in der forms-Steuerelement-Sammlung, weil es nicht wirklich gehören zu der form, der gerade gezeigt ontop alles andere

Ich habe versucht, das gleiche zu tun, aber ohne die Eltern, aber dann wird die Kontrolle nicht erscheint.

Dank!

EDIT: Wenn ich das überschreiben der OnPaintBackground-Methode im usercontrol und verhindern, dass der hintergrund gemalt, dann funktioniert es, jedoch vermasselt die transparenten Teile von PNG-Bild-im-Malerei in der Steuerung mit Hilfe der Methode DrawImage, was Sinn macht.

InformationsquelleAutor TheCodeJunkie | 2008-12-17

Schreibe einen Kommentar