私はいくつかの調査を行い、これを見つけました:
DataObject d = new DataObject();
d.SetData(DataFormats.Serializable, myObject);
d.SetData(DataFormats.Text, myObject.ToString());
myForm.DoDragDrop(d, DragDropEffects.Copy);
Winフォームにドラッグアンドドロップするコードスニペット。
そして、私はそれをこのように実装しようとしました(WPF):
private void listView1_MouseMove(object sender, MouseEventArgs e)
{
try
{
if (e.LeftButton == MouseButtonState.Pressed)
{
DataObject d = new DataObject();
d.SetData(DataFormats.Serializable, listView1.SelectedItem);
d.SetData(DataFormats.Text, listView1.SelectedItem.ToString());
DragDrop.DoDragDrop(listView1, d, DragDropEffects.Copy);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
ListViewItemをメモ帳にドラッグドロップすると、おそらく選択したアイテムのクラス名がコピーされると思っていました(これは、listView1.SelectedItem.ToString()であるためです...)しかし、代わりにメモ帳にキャンセル記号の画像が表示されました。ホバリングし、マウスボタンを離しても何もコピーされませんでした。
これの全体的な目標は、クラスをコンマ区切りの文字列に変更して、メモ帳にコピーして貼り付けるときに、クラスのすべてのデータが適切な形式になるようにすることです。
しかし、誰かがクラス名をコピーするのを手伝ってくれるなら、そこからそれを理解できると確信しています:o