2011-07-14 5 views
0

私はチェックリストボックスを持っていますので、テキスト拡張子ではなく画像拡張子のみをドラッグアンドドロップします。 どうすればいいですか? すべてのファイル形式をドラッグアンドドロップできますが、イメージファイルのみが必要です。 私のコードは次のとおりです。checkedlistboxにドラッグ&ドロップする

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 
+0

各 'FileName'の拡張子を確認できませんでしたか? – jonsca

+0

私は知っているが、コードを追加する方法は私の質問ですか? –

+0

forループ内の2つのステートメントを交換するだけです。したがって、イメージローディングコードが転倒したときに追加されることはありません。 –

答えて

2

各ファイル名の拡張子を確認してください。

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 

あなたはドラッグファイルリストには画像ファイルが存在しない場合DragDropEffects.Noneを示すために、DragEnterイベントメソッドに同様のコードを追加することもできます。このような

+0

本当にありがとうございました。本当にあなたの時間を節約しました。 –

0

何か(あなたがより多くのファイル拡張子を追加する必要があります):

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 

はまた、ファイル名の場合を考慮する必要があります。

関連する問題