2009-06-29 10 views
0

Ich arbeite an einer WinForms-App und muss den Speicherort von MouseDown und MouseUp-Ereignissen aufzeichnen. Mein Problem ist, dass die Ereignisse auf verschiedenen Steuerelementen passieren, so dass ihre Koordinatensysteme nicht übereinstimmen (alles, was ich brauche, ist die Menge an Ziehen). Ich habe versucht, den Standort des sendenden Steuerelements hinzuzufügen, aber es funktioniert immer noch nicht richtig.Wie bekomme ich einen globalen Standort von MouseDown?

Gibt es eine einfache Lösung?

Antwort

4

Sie können PointToScreen Methode für den Zweck verwenden. Maus-Handler-Code könnte dann wie folgt aussehen:

private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) 
{ 
    Control control = (Control) sender; 
    Point pointOnScreen = control.PointToScreen(new Point(e.X, e.Y)); 

    ... 
} 
+0

Das scheint zu tun, was ich will, aber ich immer noch Probleme hat ... in dem Rest des Codes: b – BCS

+0

Was sind die Probleme? –