Page 1 of 1

Behandeln Sie Mousemove, Mousedown, Mausup -Ereignisse in einer Listansicht, um eine randlose Form zu ziehen

Posted: 08 Feb 2025, 05:02
by Guest
Ich verwende Mousemove , mauseup , MouseDown Ereignisse, um eine randlose Form zu verschieben (wie hier als Beispiel gefunden).
Es funktioniert großartig, aber für eine ListView funktioniert es nur, wenn ich auf einen Element (seinen Text) in der Liste klicke. Es funktioniert nicht, wenn ich in den Speicherplatz der Listansicht klicke, die keine Elemente enthält. < /P>
Gibt es einen möglichen Weg, dies zu beheben?

Code: Select all

private bool mouseDown;
private Point lastLocation;

private void ListView1_MouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
lastLocation = e.Location;
}

private void ListView1_MouseMove(object sender, MouseEventArgs e)
{
if(mouseDown)
{
this.Location = new Point(
(this.Location.X - lastLocation.X) + e.X, (this.Location.Y - lastLocation.Y) + e.Y);

this.Update();
}
}

private void ListView1_MouseUp(object sender, MouseEventArgs e)
{
mouseDown = false;
}