2012-01-10 33 views
2

ダブルクリックでリストビューから項目を開きたいとします。コードの重要な部分だダブルクリックでリストビュー項目を開くvb.net

Imports System.IO 
Imports System.Xml 
Public Class cv7import 

Private Sub cv7import_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim caminho As String 
    caminho = "C:\Documents and Settings\Software\Ambiente de trabalho\cv7import" 



    lstvicon.View = View.Details 
    lstvicon.GridLines = False 
    lstvicon.FullRowSelect = True 
    lstvicon.HideSelection = False 
    lstvicon.MultiSelect = True 


    lstvicon.Columns.Add("Nome") 
    lstvicon.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize) 


    Dim DI As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(caminho) 

    Dim files() As System.IO.FileInfo = DI.GetFiles 

    Dim file As System.IO.FileInfo 

    Dim li As ListViewItem 
    For Each file In files 
     li = lstvicon.Items.Add(file.Name) 


    Next 

End Sub 



Private Sub btnimp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnimp.Click 

    Dim caminho As String 
    caminho = "C:\Documents and Settings\Software\Ambiente de trabalho\cv7import" 


    Dim items() As ListViewItem = lstvicon.SelectedItems.Cast(Of ListViewItem).ToArray 
    Dim csv() As String = Array.ConvertAll(items, Function(lvi) String.Join(",", lvi.SubItems.Cast(Of ListViewItem.ListViewSubItem).Select(Function(si) si.Text).ToArray)) 
    IO.File.WriteAllLines("C:\Documents and Settings\Software\Ambiente de trabalho\cv7import\teste.csv", csv) 

End Class 

、私はonclickの使用を考えたが、私は、それをどこでも任意の提案を得るように見えるカント?

私もファイルダイアログを使用して開くと考えるが、私は、私はあなたが開いていると言うとき、あなたは関連するファイルを開きたい意味と仮定しています、それはパス

答えて

3

のユーザーの入力なしで行うことができると思ういけませんそのファイルタイプのデフォルトプログラムで使用します。その場合は、ファイルへのフルパスをリストビューに保存する必要があります。これは次のコードで実現できます:

For Each file In files 
     li = lstvicon.Items.Add(file.Name) 

     li.Tag = file.FullName 
    Next 

次に、listviewのダブルクリック方法のイベントを追加する必要があります。そのイベントの中で、選択した項目を見て、その項目のデフォルトプログラムを実行したいと思うでしょう。

Private Sub lstvicon_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lstvicon.DoubleClick 
    Process.Start(lstvicon.SelectedItems(0).Tag) 
End Sub 
+0

ありがとう – user1100407

関連する問題