void FileStatusListView_MouseDown(object sender, MouseEventArgs e) { //SELECT if (e.Button == MouseButtons.Right) { var hover = FileStatusListView.HitTest(e.Location); if (hover.Item != null && !hover.Item.Selected) { ClearSelected(); hover.Item.Selected = true; } } //DRAG if (e.Button == MouseButtons.Left) { if (SelectedItems.Any()) { // Remember the point where the mouse down occurred. // The DragSize indicates the size that the mouse can move // before a drag event should be started. Size dragSize = SystemInformation.DragSize; // Create a rectangle using the DragSize, with the mouse position being // at the center of the rectangle. dragBoxFromMouseDown = new Rectangle(new Point(e.X - (dragSize.Width / 2), e.Y - (dragSize.Height / 2)), dragSize); } else { // Reset the rectangle if the mouse is not over an item in the ListView. dragBoxFromMouseDown = Rectangle.Empty; } } }