c# panel immer im vordergrund?

...komplette Frage anzeigen

1 Antwort

Was willst du denn damit erreichen? Sicherlich gibt es dafür auch andere Möglichkeiten.

Ansonsten hättest du die Wahl:

  1. Du verwendest die Windows API. Damit würdest du aber deinen Code gewaltig aufblähen. Sehr viel Arbeit für vergleichsweise wenig Nutzen.
  2. Du erzeugst dir ein eigenes Panel, welches das Click-Ereignis der Steuerelemente abboniert und selbst das Click-Ereignis auslöst. (Beispiel dazu siehe unten.)
  3. Du kapselst den Code, der beim Klick auf das Panel erfolgen soll, in eine eigene Methode und rufst sie auf, wenn auch auf die anderen Steuerelemente geklickt wurde, in dem du deren Click-Ereignis behandelst.

Beispiel für Nummer 2:

public class MyPanel : Panel
{
private void Control_Click(object sender, System.EventArgs e)
{
OnClick(e);
}

protected override void OnControlAdded(System.Windows.Forms.ControlEventArgs e)
{
base.OnControlAdded(e);
e.Control.Click += Control_Click;
}

protected override void OnControlRemoved(System.Windows.Forms.ControlEventArgs e)
{
e.Control.Click -= Control_Click;
base.OnControlRemoved(e);
}
}

Was möchtest Du wissen?