Открытие списка элементов с двойным кликом vb.net - PullRequest
2 голосов
/ 10 января 2012

Я хочу открыть элементы в виде списка двойным щелчком мыши.

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, но, похоже, я ничего не могу с этим поделать, какие-либо предложения?

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

1 Ответ

4 голосов
/ 10 января 2012

Я предполагаю, что когда вы говорите «открыть», вы имеете в виду, что вы хотите открыть связанный файл в программе по умолчанию для этого типа файлов.В этом случае вам нужно сохранить полный путь к файлу в виде списка.Это можно сделать с помощью этого кода:

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

        li.Tag = file.FullName
    Next

Затем вам нужно будет добавить событие для метода двойного щелчка по списку.В рамках этого события вы захотите посмотреть на выбранный элемент и запустить для него программу по умолчанию.

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