mikrocontroller.net

Forum: PC-Programmierung C#: Windows-Forms schließen wenn man da neben klickt.


Autor: DanS S. (dns712)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wie kann ich ein Windows-Forms mit C# schließen, wenn ich danneben 
klicke? (oder die Maus vom Fenster entferne)

Habe schon alle Aktionen die unter der GUI von Visual Studio zur 
verfügung stehen ausprobiert.

MouseLeave kommt dem allem am nächste, jedoch wird wenn ich auf eine 
Button oder Label komme das Fenster ebenfalls geschlossen.

Autor: Klaus (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
> (oder die Maus vom Fenster entferne)

Letzter oder vorletzter Beitrag dort:
https://stackoverflow.com/questions/7811181/mouse-...

Autor: DanS S. (dns712)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, es funktioniert.

Jedoch nicht immer. Halte ich die Maus ein paar Sekunden still über 
einen Label oder ein Bild halte und ziehe dann schnell aus dem Fenster 
bleibt dieses offen.

Erst beim erneuten reinziehen und wieder raus ziehen mit der Maus 
schließt sich das Fenster.

Bekommt das Programm das Event nicht mit?

Habe diese Lösung benutzt:
protected override void OnMouseLeave(EventArgs e)
{

    if(this.ClientRectangle.Contains(this.PointToClient(Control.MousePosition)))
         return;
    else
    {
      base.OnMouseLeave(e);
      this.Close();            //Habe ich noch hinzugefügt          
    }
}

: Bearbeitet durch User
Autor: Frank S. (schroederde)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann erweitere das Programm um Mouse.Capture. Evtl. kannst Du auch noch 
NCHitTest auswerten.

Autor: DanS S. (dns712)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie würde das aussehen?
Bin Anfänger was C# angeht.
        private void properties_MouseCaptureChanged(Object sender, EventArgs e)
        {

            MessageBox.Show("You are in the MouseCaptureChanged event.");

        }

Habe dieses Event das wird allerdings nur aufgerufen wenn ich in das 
Fenster klicke nicht wenn ich danneben klicke.

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.