[ad_1]
Hai,
Saya ingin mereplikasi drag & drop dari file explorer tetapi dari aplikasi saya yang akan menjadi item lislview.
yaitu
Seret item tampilan daftar (Jalur file) ke aplikasi lain yang sama seperti penjelajah.
Tampaknya ada banyak contoh menyeret ke suatu aplikasi tetapi sangat sedikit ke aplikasi lain.
Terima kasih sebelumnya
Apa yang saya coba:
Saya telah mencoba ini dengan mouse ke bawah tetapi bukan pendekatan yang benar
DataObject Data = New DataObject(DataFormats.FileDrop, files) DragDrop.DoDragDrop(listTest, Data, DragDropEffects.Copy)
Saya bahkan berpikir untuk menggunakan clipboard tetapi sekali lagi menurut saya ini bukan pendekatan yang tepat.
Diurutkan (Hanya jika ada orang lain yang kesulitan.
<ListView x:Name="Lst_File_Viewer" Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2" Margin="5,3,5,3" SelectionMode="Single"> <ListView.ItemContainerStyle> <Style TargetType="ListViewItem"> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <EventSetter Event="MouseMove" Handler="Lst_File_Viewer_MouseMove" /> </Style> </ListView.ItemContainerStyle> <ListView.View> <GridView AllowsColumnReorder="False"> <GridViewColumn Header="File Name" Width="Auto" DisplayMemberBinding="{Binding Name}" /> <GridViewColumn Header="Dir" Width="0" DisplayMemberBinding="{Binding Directory}" /> </GridView> </ListView.View> </ListView>
Private Sub Lst_File_Viewer_MouseMove(sender As Object, e As MouseEventArgs) If e.LeftButton = MouseButtonState.Pressed Then If e.Source IsNot Nothing Then Dim dataObject As DataObject ' = New DataObject(myList) Dim myList As StringCollection = New StringCollection For Each Item As File In Lst_File_Viewer.SelectedItems myList.Add(Item.Directory) Next dataObject = New DataObject() dataObject.SetFileDropList(myList) DragDrop.DoDragDrop(Lst_File_Viewer, dataObject, DragDropEffects.Copy) End If End If End Sub
Terima kasih telah mengarahkan saya ke Jalan yang benar.
Solusi 1
Saat Anda melakukan drag’n’drop dari explorer ke suatu aplikasi, penerima perlu melakukan beberapa hal:
1) Tangani Acara DragEnter Atur e.Effect ke DragDropEffect.Copy, atau DragDropEffects.Move
2) Tangani Peristiwa DragDrop dan ambil daftar file dengan memanggil e.Data.GetData dan meneruskan nilai DataFormts.FileDrop ke dalamnya. Ini mengembalikan Objek yang jika ada file akan berupa array string – satu string per file dan berisi path lengkap ke file tersebut.
Jadi untuk mengeluarkan aplikasi Anda dalam format yang dapat diproses oleh sistem lain cukup sederhana: buatlah array jalur dan panggil metode DoDragDrop untuk Formulir Anda (atau kontrol lain) dengan meneruskan array dan DragDropEffects.Copy Ored dengan DragDropEffects.Move as parameter kedua.
Anda mungkin juga ingin melihat Acara Control.QueryContinueDrag (System.Windows.Forms) | Microsoft Belajar[^] tetapi jika Anda memilih “aplikasi apa pun” maka Anda tidak memerlukannya.
[ad_2]
コメント