1

我有一个用 C# 编写的 Winforms 应用程序。

在我的表单上,我有两个 DataGridViews

我已经在两个 DataGridView 之间设置了拖放操作,以便从 dataContact 拖动将 int ID 发送到 dataContactBusiness。

但是在 Drop 我得到一个错误'对象未设置为实例'

当我单步执行我的代码时,我可以看到 DragEventArgs e 在其数据中包含 ID,因此我不明白为什么会收到错误消息。

我的代码如下 -

private void dataContact_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
    DataGridViewRow row = dataContact.Rows[e.RowIndex];
    int conID = (int)row.Cells["ID"].Value;
    dataContact.DoDragDrop(conID, DragDropEffects.All);
}

private void dataContactBusiness_DragEnter(object sender, DragEventArgs e)
{
   e.Effect = DragDropEffects.All;
}

private void dataContactBusiness_DragDrop(object sender, DragEventArgs e)
{
    string data = e.Data.GetData(DataFormats.Text).ToString();  //...error occurs here
}

错误信息

'5' 的数据值是我所期望的,那为什么会出错呢?

4

1 回答 1

3

我猜拖动数据的格式不是 DataFormats.Text 。您可以在 dataContactBusiness_DragDrop 函数中放置一个断点并检查 DragEventArgs 以查看数据的格式并相应地将您的参数更改为 GetData。

于 2013-10-22T12:35:29.543 回答