한마음 님, 안녕하세요.
메시어스입니다.
Spread는 Excel에서 Spread로 데이터를 드래그&드롭 하는 기능을 공식적으로/직접적으로 지원하지 않는 기능입니다. 그러나 대안으로 아래 코드를 사용하여 텍스트를 드래그 드롭하는 기능을 적용해보실 수 있습니다.
다만, 이는 공식적인 기능이 아닌 워커라운드로, 특히 Excel에서 특수하게 복사된 데이터가 있는 경우 해당 코드에 문제가 있을 수 있다는 점을 유의해 주시기 바랍니다.
fpSpread1.AllowDrop = true;
fpSpread1.DragDrop += FpSpread1_DragDrop;
fpSpread1.DragEnter += FpSpread1_DragEnter_Over;
fpSpread1.DragOver += FpSpread1_DragEnter_Over;
private void FpSpread1_DragDrop(object sender, DragEventArgs e)
{
IDataObject dataObject = e.Data;
string[] formats = dataObject.GetFormats();
bool copy = (Control.ModifierKeys & Keys.Control) != 0;
e.Effect = copy ? DragDropEffects.Copy : DragDropEffects.Move;
System.Windows.Forms.Clipboard.SetDataObject(dataObject);
fpSpread1.ActiveSheet.AsWorksheet().Paste();
}
private void FpSpread1_DragEnter_Over(object sender, DragEventArgs e)
{
e.Effect = e.AllowedEffect;
Point loc = fpSpread1.PointToClient(Control.MousePosition);
HitTestInformation ht = fpSpread1.HitTest(loc.X, loc.Y);
if (ht.Type == HitTestType.Viewport)
{
fpSpread1.ActiveSheet.SetActiveCell(ht.ViewportInfo.Row, ht.ViewportInfo.Column);
}
}
감사합니다.
메시어스 드림