Danke für Deine erste Hilfe.
Es geht darum.
Bekomme in meiner ListBox z. B. PDF-Dokumente angezeigt. Klicke ich doppelt, kann ich diese Dokumente öffnen. Das klappt alles. Was ich noch gerne machen würde ist:
Gehe ich auf ein angezeigtes PDF-Dokument der ListBox, klicke dann die rechte Maus, dann würde ich gerne den Pfad, in der das Dokument abgelegt ist, öffnen.
Hier mal den kompletten Code zum Verstehen
Public Class Form5
Dim x$, y$, pathxx$, folder$
'Suche nach Angebots-Ordner und öffnen
'##########################################################################
' #########################
Private Const laufwerk2 = "Z:\INT\Data\CustomerSolutions\Systems\DE_SY\"
'Private Const ordner2 = "\1. Projektierung\1.7 Angebote"
Private Sub TextBox57_TextChanged(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles TextBox57.TextChanged
x = TextBox57.Text
y = TextBox58.Text
If Microsoft.VisualBasic.Len(x) = 6 Then
folder = Microsoft.VisualBasic.Left(x, 4) + "xx"
pathxx = laufwerk2 + folder + "\" + x + "\" + y ' + ordner2
GetFiles(pathxx)
'TextBox1.Text = pathxx
End If
End Sub
Private Sub GetFiles(ByVal path As String)
If IO.Directory.Exists(path) Then
For Each pfad As String In IO.Directory.GetFiles(path, "*.*", _
IO.SearchOption.AllDirectories)
Dim di As New DataItem(IO.Path.GetFileName(pfad), pfad)
Select Case IO.Path.GetExtension(pfad)
Case ".pdf" : ListBox1.Items.Add(di)
Case ".xls" : ListBox2.Items.Add(di)
Case ".xlsm" : ListBox3.Items.Add(di)
Case ".doc" : ListBox4.Items.Add(di)
Case ".msg" : ListBox5.Items.Add(di)
Case Else : ListBox6.Items.Add(di)
End Select
Next
End If
End Sub
Private Sub ListBox_MouseDoubleClick(ByVal sender As Object, ByVal e As _
System.Windows.Forms.MouseEventArgs) Handles _
ListBox1.MouseDoubleClick, ListBox2.MouseDoubleClick, _
ListBox3.MouseDoubleClick, _
ListBox4.MouseDoubleClick, ListBox5.MouseDoubleClick, _
ListBox6.MouseDoubleClick
Dim lb As ListBox = CType(sender, ListBox)
Dim item As Int32 = lb.IndexFromPoint(e.X, e.Y)
If item > -1 Then Process.Start(CType(lb.Items(item), DataItem).Pfad)
End Sub
Private Sub ListBox1_MouseMove(ByVal sender As Object, ByVal e As _
System.Windows.Forms.MouseEventArgs) Handles _
ListBox1.MouseMove, ListBox2.MouseMove, ListBox3.MouseMove, _
ListBox4.MouseMove, ListBox5.MouseMove, ListBox6.MouseMove
Dim lb As ListBox = CType(sender, ListBox)
Dim item As Int32 = lb.IndexFromPoint(e.X, e.Y)
If item > -1 Then
Label1.Text = CType(lb.Items(item), DataItem).Pfad
Else
Label1.Text = ""
End If
End Sub
Private Sub ListBox1_MouseClick(ByVal sender As Object, ByVal e As _
MouseEventArgs) Handles ListBox1.MouseClick
If (e.Button = Windows.Forms.MouseButtons.Right) Then
Shell("explorer /e," & pathxx, vbMaximizedFocus)
End If
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Button2.Click
Me.Close()
End Sub
End Class
Public Class DataItem
Private _pfad As String
Private _name As String
Public Sub New(ByVal fname As String, ByVal pfad As String)
_name = fname
_pfad = pfad
End Sub
Public ReadOnly Property Pfad() As String
Get
Return _pfad
End Get
End Property
Public Overrides Function ToString() As String
Return _name
End Function
End Class |