I was able to do this by deriving the GridDataBoundGrid and Effect = None before calling the baseclass in OnDragDrop.
Trying to use events, you cannot control the order of the handlers. You need to set the Effect = None before any handlers get a chance to operate on the data. The only way I know to do this is to use a derived grid.
public class MyGridDataBoundGrid : GridDataBoundGrid
{
protected override void OnDragDrop(DragEventArgs drgevent)
{
if(MessageBox.Show("DropData?", "", MessageBoxButtons.YesNo) == DialogResult.No)
{
drgevent.Effect = DragDropEffects.None;
}
base.OnDragDrop (drgevent);
}
}