перетащить в флажок - PullRequest
0 голосов
/ 15 июля 2011

У меня установлен флажок, и я хочу перетаскивать только расширения изображений, а не текстовые файлы.так как мне это сделать.Я могу перетаскивать все форматы файлов, но мне нужны только файлы изображений.Вот мой код:

Private Sub CheckedListBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles CheckedListBox1.DragDrop

    Dim Files As String() = CType(e.Data.GetData(DataFormats.FileDrop), String())
    For Each FileName As String In Files
        CheckedListBox1.Items.Add(FileName, CheckState.Checked)
        Thumbcontrol1.AddThumbnail(FileName)
    Next
End Sub

Private Sub CheckedListBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles CheckedListBox1.DragEnter
    If e.Data.GetDataPresent(DataFormats.FileDrop) Then
        e.Effect = DragDropEffects.Copy
    End If
End Sub

Ответы [ 2 ]

2 голосов
/ 15 июля 2011

Просто проверьте расширение каждого имени файла.

Private Shared ReadOnly SupportedExtensions As String() = {".jpg", ".jpeg", ".gif"}

Private Sub CheckedListBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles CheckedListBox1.DragDrop
    Dim Files As String() = CType(e.Data.GetData(DataFormats.FileDrop), String())
    For Each FileName As String In Files
        Dim Extension As String = Path.GetExtension(FileName).ToLower
        If Array.IndexOf(SupportedExtensions, Extension) <> -1 Then
            CheckedListBox1.Items.Add(FileName, CheckState.Checked)
            Thumbcontrol1.AddThumbnail(FileName)
        End If
    Next
End Sub

Вы можете добавить аналогичный код в метод DragEnter, чтобы показать DragDropEffects.None, если в списке перетаскиваемых файлов нет файлов изображений.

0 голосов
/ 15 июля 2011

Примерно так (вам нужно добавить больше расширений файлов):

Dim Files As String() = CType(e.Data.GetData(DataFormats.FileDrop), String())
For Each FileName As String In Files
    If FileName.Contains(".jpg") Or FileName.Contains(".bmp") Then
       CheckedListBox1.Items.Add(FileName, CheckState.Checked)
       Thumbcontrol1.AddThumbnail(FileName)
    End If
Next

Вам также нужно будет учитывать регистр имен файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...