Transparente Maske über mehrere PictureBoxes und Labels legen (WindowsForms)

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Transparente Maske über mehrere PictureBoxes und Labels legen (WindowsForms)

    Moin moin

    ich habe ein Panel, das eine PictureBox und mehrere Labels einhält. Ich würde nun gerne irgendetwas komplett transparentes als Maske darüberlegen, damit ich nicht für jedes einzelne Label/PictureBox die selben MouseOver, Click und anderen Events erstellen muss. Geht das irgendwie?
    @DanCooper Da gibt es mehrere Möglichkeiten.
    • Du kannst einem Eventhandler die Events mehrerer Controls zuweisen:

      VB.NET-Quellcode

      1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Label1.Click, PictureBox1.Click
      2. ' Do it
      3. End Sub
      4. Private Sub PictureBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles Button1.MouseMove, Label1.MouseMove, PictureBox1.MouseMove
      5. ' Do it
      6. End Sub

    • Oder Du legst eine neue WinForm mit FormBorderStyle = None drüber mit Opacity nahe 0.
      Die musst Du als nicht modalen Dialog aufrufen: frm.Show(Me).

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!