this.PictureBoxNodeBackImage.AllowDrop = true; //这个也要加上
//最后我们判断完成后怎样向PictureBox中添加数据,并从datagridview中删除选中数据所在的行,我们在PictureBox的DragDrop事件中执行操作
private void PictureBoxNodeBackImage_DragDrop(object sender, DragEventArgs e)
{
Point pos = new Point(e.X, e.Y); //拖動數據后 所記錄的坐標
pos = this.PictureBoxNodeBackImage.PointToClient(pos);
int index = -1;
if (e.Data.GetDataPresent(typeof(int)))
{
index = (int)e.Data.GetData(typeof(int));
}
if (index > -1)
MessageBox.Show(DataGridViewleizhi.Rows[index].Cells["Id"].Value.ToString());
}
//再次确定当数据拖动到PictureBox上方时,判断数据格式以及目标对象,和拖动方式.我们在PictureBox的DragEnter 事件中进行判断
private void PictureBoxNodeBackImage_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(typeof(int)))
{
e.Effect = DragDropEffects.Copy;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void DataGridViewleizhi_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
DataGridViewleizhi.DoDragDrop(e.RowIndex, DragDropEffects.Copy);
}