SplitContainer Click auf Panel1/Panel2 abfangen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Peter329.

    SplitContainer Click auf Panel1/Panel2 abfangen

    Hi,

    heute habe ich ein vermutlich sehr einfaches Problem, das ich aber leider nicht gebacken bekomme ...

    Ich habe einen Splitcontainer .... den Hintergrund der Panels möche ich per Mausclick jeweils unterschiedlich einfärben. Im Anhang sieht man man was ich vorhabe.

    Am liebsten möchte ich das per Click auf das jeweilige Panel erledigen. Aber ...

    - ich finde kein Event SplitContainer1Panel1.Click oder SplitContainer.Panel1.Click

    - ich finde nur das Event SplitContainer1.Click, aber das feuert nicht ! Und selbst wenn, ich müsste ja noch irgendwie herausfinden, welches Panel geklickt wurde.

    Das Problem habe ich umgangen, indem ich halt den Click auf das Label links oben im Panel abfange ... aber das ist halt nicht ganz das was ich haben möchte.

    Ich bin sicher, ihr könnt mir bei diesem Problemchen behilflich sein ....

    LG
    Peter
    Bilder
    • s 2023-04-23 16-54-283.jpg

      29,21 kB, 993×174, 35 mal angesehen
    • s 2023-04-23 16-55-041.jpg

      27,22 kB, 993×174, 41 mal angesehen
    Gibts aber!

    Wenn Du im Designer doppelklick auf ein Panel machst, erstellt er dir ein "SplitContainer1.Panel2.Paint" Event!
    Und Intellisense zeigt Dir auch das es das "SplitContainer1.Panel2.Click" Event gibt!

    Oder im Designer rechtsklick auf das Panel -> Eigenschaften und rechts "Ereignisse" (Blitz) auswählen!
    Da gibts das Click-Event!

    Oder selbst erstellen:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub SplitContainer1_Panel2_Click(sender As Object, e As EventArgs) Handles SplitContainer1.Panel2.Click
    2. End Sub


    Musst im Designer drauf achten auf Welcher Control-Ebene Du dich befindest..mit ESC gehts weiter nach oben!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Morrison“ ()

    @Peter329 Das ist ein Container, kein Panel.
    Du kannst da ein Panel mit Dock = Fill reinpacken, was Dir alle Deine Wünsche erfüllt.
    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!
    Na, das nenne ich prompte Hilfe ! Vielen Dank erst einmal ...

    Tatsächlich gibt es die Events SplitContainer1.Panel1.Click und SplitContainer1.Panel2.Click ... und die feuern auch so wie sie sollen. (In meinem ursprünglichen Lösungsversuch hat ein Punkt gefehlt).

    Tatsächlich werden diese Events in meiner IDE aber NICHT angezeigt ... Ich hab einmal einen Screenshot angehängt, der das dokumentiert ...

    Aber der Compiler ist trotzdem damit zufrieden. So hab ich das jetzt gelöst:

    VB.NET-Quellcode

    1. Private Sub Panel1_Click(sender As Object, e As EventArgs) Handles SplitContainer1.Panel1.Click
    2. SetFocus("S"c)
    3. End Sub
    4. Private Sub Panel2_Click(sender As Object, e As EventArgs) Handles SplitContainer1.Panel2.Click
    5. SetFocus("T"c)
    6. End Sub


    Das funktioniert hervorragend. Ihr habt meinen Tag wieder einmal gerettet !

    Recht herzlichen Dank an die Ratgeber und einen schönen Restsonntag.

    LG
    Peter
    Bilder
    • s 2023-04-23 17-57-049.jpg

      68,94 kB, 1.092×459, 31 mal angesehen