1

C# で書かれた Winforms アプリがあります。

私のフォームには 2 つの DataGridViews があります

2 つの DataGridView 間でドラッグ アンド ドロップ操作を設定して、dataContact からドラッグすると int ID が dataContactBusiness に送信されるようにしました。

ただし、ドロップすると、「オブジェクトがインスタンスに設定されていません」というエラーが表示されます

コードをステップ実行すると、DragEventArgs e の Data に 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 に答える