internal static void Drag_SetEffect(F.DragEventArgs e) {
if ((e.KeyState & (8 + 32)) == (8 + 32) && (e.AllowedEffect & F.DragDropEffects.Link) == F.DragDropEffects.Link)
e.Effect = F.DragDropEffects.Link; // Link drag-and-drop effect.// KeyState 8 + 32 = CTL + ALT
else if ((e.KeyState & 32) == 32 && (e.AllowedEffect & F.DragDropEffects.Link) == F.DragDropEffects.Link)
e.Effect = F.DragDropEffects.Link; // ALT KeyState for link.
else if ((e.KeyState & 4) == 4 && (e.AllowedEffect & F.DragDropEffects.Move) == F.DragDropEffects.Move)
e.Effect = F.DragDropEffects.Move; // SHIFT KeyState for move
else if ((e.KeyState & 8) == 8 && (e.AllowedEffect & F.DragDropEffects.Copy) == F.DragDropEffects.Copy)
e.Effect = F.DragDropEffects.Copy; // CTL KeyState for copy.
else if ((e.AllowedEffect & F.DragDropEffects.Move) == F.DragDropEffects.Move)
e.Effect = F.DragDropEffects.Move; // By default, the drop action should be move, if allowed.
else
e.Effect = F.DragDropEffects.Copy;
}