3

1つの列を持つバインドされたDataGridViewを作成しました。ファイルをDataGridViewにドラッグアンドドロップして、ファイル名(パスと名前)のみを列のセルに保存できるようにしたい。私は調査を行っており、その方法は、DragDropイベントとDragEnterイベントを使用して、いくつかの異なることを試しましたが、どれもうまくいきませんでした。誰かがこれを行う方法を知っていますか?

私のコード:

   private void PlaylistDataGridDragEnter(object sender, DragEventArgs e)
    {
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
            e.Effect = DragDropEffects.All;
        else
            e.Effect = DragDropEffects.None;
    }

    private void PlaylistDataGridDragDrop(object sender, DragEventArgs e)
    {      
        if (e.Data.GetDataPresent(DataFormats.FileDrop))
        {
            var files = (string[])e.Data.GetData(DataFormats.FileDrop);
            foreach (var filePath in files)
            {
                var a = (DataRowView) PlaylistBindingSource.AddNew();
                a.BeginEdit();
                a[0] = filePath;
                a.EndEdit();
            }
        }
    }
4

1 に答える 1

3

あなたが言うように、 DragEnterおよびDragDropイベントを実装する必要があります。これを行う方法については、こちらの記事をご覧ください。入力中にコードを追加しました。DataGridView にアイテムを追加する方法を調整するだけです。新しい行を追加してから、最後の行に対処する必要があります。

PlaylistDataGrid.Rows.Add();
PlayListDataGrid[0,PlaylistDataGrid.RowCount-1].Value = filePath

これは、DataGridView の最初の列にデータを配置することを前提としています。

于 2012-06-21T18:21:31.673 に答える