Updated: A better Visual Studio 2010 specific solution is to install the VSCommands 2010 plugin.
Several times I've caught myself out in Visual Studio Solution Explorer by dragging and dropping a file/folder into another folder by accident. Usually the folder immediately adjacent to the file/folder being moved. The default windows threshold for drag and drop it 4 pixels. By increasing this I'm hoping to avoid accidental drag and drop.
Note: This will affect all drag and drop operations in Windows, not just Visual Studio.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace AdjustDragDropDistance
{
class Program
{
///
/// uAction for drag and drop horizontal threshold
///
static int SPI_SETDRAGWIDTH = 76;
///
/// uAction for drag and drop vertical threshold
///
static int SPI_SETDRAGHEIGHT = 77;
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni);
static void Main(string[] args)
{
//Default value to use the can be overridden from the command line.
//The normal windows default is around 4 pixels.
int _dragThresholdInPixels = 25;
try
{
if (args.Length > 0)
{
if(!int.TryParse(args[0], out _dragThresholdInPixels))
{
Console.Error.WriteLine("Failed to parse [{0}] as integer for drag threshold.", args[0]);
}
}
SystemParametersInfo(SPI_SETDRAGWIDTH, _dragThresholdInPixels, "", 0);
SystemParametersInfo(SPI_SETDRAGHEIGHT, _dragThresholdInPixels, "", 0);
}
catch (Exception ex)
{
Console.Error.WriteLine(ex.ToString());
Console.Read();
}
}
}
}
See Also: