MenuStrip_Item.Click

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    MenuStrip_Item.Click

    Hallo Zusammen

    ich bin Bluttiger Anfänger bitte um Verständnis.

    brauche von euch Unterstützung bzw. Passenden Quellcode:

    In meine habe Form mit MenuStrip mit 13 Menu_Items,
    ein TabControl mit 4 TabPage, je TabPage hat ein Listview.

    Bei Click auf das Menü und einen Item z.B.: A_1 der eine Produktion Anlage darstellen soll, soll die Verbindung zum Bestimmten Ordner im Firmennetzwerk hergestellt werden,(dort sind 4 Unterordner mit Qualität Dokumenten abgelegt, die für die Produktion benötigt werden)
    Diese 4 TabPage sollen dann die Verbindung zum Unterordner herstellen z.B

    Menu_Item A_1 Verbindung \\xxx\xxxxxx\Standards\A_1\Pressen = TabPage Pressen
    Menu_Item A_1 Verbindung \\xxx\xxxxxx\Standards\A_1\Kneten = TabPage Kneten
    Menu_Item A_1 Verbindung \\xxx\xxxxxx\Standards\A_1\Formen = TabPage Formen
    Menu_Item A_1 Verbindung \\xxx\xxxxxx\Standards\A_1\Packen = TabPage Packen

    Bei Klick auf A_2 das gleiche nur mit A_2 Ordner, sollen dann die Dokumente des Ordner dargestellt werden.

    Der Inhalt aus A_1 und der Unterordner „Formen“ soll dann in TabPage_Formen und in Listview_Formen geladen werden.

    Die Liste der Dateien bei Klick auf ListView_Formen liste z.B Formen_0001 (es sind nur PDF Dokumente)
    soll dann in PDF Dokument geladen werden.

    Ich hoffe das mein Erklärung wie es Funktionieren soll gut zu verstehen ist.



    VB.NET-Quellcode

    1. Private Sub A_1_Item_Click(sender As Object, e As EventArgs) Handles A_1_Item.Click
    2. Try
    3. Converting_GB1.Text = "Standard für " + A_1_Item.Text 'Text der GruppBox + Text aus der Menü
    4. Me.Text = "Standard - A_1"
    5. If Converting_TC1.SelectedIndex = (0) Then ' wenn TabControl und TabPage Pressen
    6. Try
    7. If String.IsNullOrEmpty("V:\Standards\A_1\Pressen") Then Throw New ArgumentNullException("Path")
    8. Dim locDirInfo As IO.DirectoryInfo = Nothing
    9. Dim locLtvItem As ListViewItem = Nothing
    10. With ListView1
    11. Try
    12. .BeginUpdate()
    13. ' Spalten und Zeilen zurücksetzen
    14. .Items.Clear()
    15. .Columns.Clear()
    16. ' Spalten hinzufügen
    17. .Columns.Add("Standards", 300, HorizontalAlignment.Left)
    18. .Columns.Add("Letzte Änderung", 150, HorizontalAlignment.Left)
    19. .GridLines = True
    20. .FullRowSelect = True
    21. .MultiSelect = True
    22. .View = View.Details
    23. locDirInfo = New IO.DirectoryInfo("V:\Standards\A_1\Pressen")
    24. If Not locDirInfo.Exists Then Throw New IO.DirectoryNotFoundException
    25. For Each locFi As IO.FileInfo In locDirInfo.GetFiles()
    26. locLtvItem = New ListViewItem(New String() {locFi.Name,
    27. locFi.LastWriteTimeUtc.ToString})
    28. locLtvItem.Tag = locFi ' Für spätere Verarbeitung der Datei merken
    29. locLtvItem.ImageKey = locFi.Extension ' Icon zuweisen
    30. .Items.Add(locLtvItem)
    31. Next
    32. ' Spaltenbreite automatisch anpassen
    33. 'AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)
    34. Catch ex As Exception
    35. Throw ex
    36. Finally
    37. .EndUpdate()
    38. locDirInfo = Nothing
    39. locLtvItem = Nothing
    40. End Try
    41. End With
    42. Catch ex As Exception
    43. MsgBox(ex.Message)
    44. Exit Try
    45. End Try
    46. ElseIf Converting_TC1.SelectedIndex = (1) Then ' wenn TabControl und TabPage Kneten
    47. Try
    48. If String.IsNullOrEmpty("V:\Standards\A_1\Kneten") Then Throw New ArgumentNullException("Path")
    49. Dim locDirInfo As IO.DirectoryInfo = Nothing
    50. Dim locLtvItem As ListViewItem = Nothing
    51. With ListView2
    52. Try
    53. .BeginUpdate()
    54. ' Spalten und Zeilen zurücksetzen
    55. .Items.Clear()
    56. .Columns.Clear()
    57. ' Spalten hinzufügen
    58. .Columns.Add("Standards", 300, HorizontalAlignment.Left)
    59. .Columns.Add("Letzte Änderung", 150, HorizontalAlignment.Left)
    60. .GridLines = True
    61. .FullRowSelect = True
    62. .MultiSelect = True
    63. .View = View.Details
    64. locDirInfo = New IO.DirectoryInfo("V:\Standards\A_1\Kneten")
    65. If Not locDirInfo.Exists Then Throw New IO.DirectoryNotFoundException
    66. For Each locFi As IO.FileInfo In locDirInfo.GetFiles()
    67. locLtvItem = New ListViewItem(New String() {locFi.Name,
    68. locFi.LastWriteTimeUtc.ToString})
    69. locLtvItem.Tag = locFi ' Für spätere Verarbeitung der Datei merken
    70. locLtvItem.ImageKey = locFi.Extension ' Icon zuweisen
    71. .Items.Add(locLtvItem)
    72. Next
    73. ' Spaltenbreite automatisch anpassen
    74. 'AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)
    75. Catch ex As Exception
    76. Throw ex
    77. Finally
    78. .EndUpdate()
    79. locDirInfo = Nothing
    80. locLtvItem = Nothing
    81. End Try
    82. End With
    83. Catch ex As Exception
    84. MsgBox(ex.Message)
    85. Exit Try
    86. End Try
    87. ElseIf Converting_TC1.SelectedIndex = (2) Then ' wenn TabControl und TabPage Formen
    88. Try
    89. If String.IsNullOrEmpty("V:\Standards\A_1\Formen") Then Throw New ArgumentNullException("Path")
    90. Dim locDirInfo As IO.DirectoryInfo = Nothing
    91. Dim locLtvItem As ListViewItem = Nothing
    92. With ListView3
    93. Try
    94. .BeginUpdate()
    95. ' Spalten und Zeilen zurücksetzen
    96. .Items.Clear()
    97. .Columns.Clear()
    98. ' Spalten hinzufügen
    99. .Columns.Add("Schneide Standards", 375, HorizontalAlignment.Left)
    100. .Columns.Add("Letzte Änderung", 150, HorizontalAlignment.Left)
    101. .GridLines = True
    102. .FullRowSelect = True
    103. .MultiSelect = True
    104. .View = View.Details
    105. locDirInfo = New IO.DirectoryInfo("V:\Standards\Converting\M43\EBI")
    106. If Not locDirInfo.Exists Then Throw New IO.DirectoryNotFoundException
    107. For Each locFi As IO.FileInfo In locDirInfo.GetFiles()
    108. locLtvItem = New ListViewItem(New String() {locFi.Name,
    109. locFi.LastWriteTimeUtc.ToString})
    110. locLtvItem.Tag = locFi ' Für spätere Verarbeitung der Datei merken
    111. locLtvItem.ImageKey = locFi.Extension ' Icon zuweisen
    112. .Items.Add(locLtvItem)
    113. Next
    114. ' Spaltenbreite automatisch anpassen
    115. 'AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)
    116. Catch ex As Exception
    117. Throw ex
    118. Finally
    119. .EndUpdate()
    120. locDirInfo = Nothing
    121. locLtvItem = Nothing
    122. End Try
    123. End With
    124. Catch ex As Exception
    125. MsgBox(ex.Message)
    126. Exit Try
    127. End Try
    128. ElseIf Converting_TC1.SelectedIndex = (3) Then ' wenn TabControl und TabPage Packen
    129. Try
    130. If String.IsNullOrEmpty("V:\Standards\A_1\Packen") Then Throw New ArgumentNullException("Path")
    131. Dim locDirInfo As IO.DirectoryInfo = Nothing
    132. Dim locLtvItem As ListViewItem = Nothing
    133. With ListView4
    134. Try
    135. .BeginUpdate()
    136. ' Spalten und Zeilen zurücksetzen
    137. .Items.Clear()
    138. .Columns.Clear()
    139. ' Spalten hinzufügen
    140. .Columns.Add("Schneide Standards", 375, HorizontalAlignment.Left)
    141. .Columns.Add("Letzte Änderung", 150, HorizontalAlignment.Left)
    142. .GridLines = True
    143. .FullRowSelect = True
    144. .MultiSelect = True
    145. .View = View.Details
    146. locDirInfo = New IO.DirectoryInfo("V:\Standards\A_1\Packen")
    147. If Not locDirInfo.Exists Then Throw New IO.DirectoryNotFoundException
    148. For Each locFi As IO.FileInfo In locDirInfo.GetFiles()
    149. locLtvItem = New ListViewItem(New String() {locFi.Name,
    150. locFi.LastWriteTimeUtc.ToString})
    151. locLtvItem.Tag = locFi ' Für spätere Verarbeitung der Datei merken
    152. locLtvItem.ImageKey = locFi.Extension ' Icon zuweisen
    153. .Items.Add(locLtvItem)
    154. Next
    155. ' Spaltenbreite automatisch anpassen
    156. 'AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent)
    157. Catch ex As Exception
    158. Throw ex
    159. Finally
    160. .EndUpdate()
    161. locDirInfo = Nothing
    162. locLtvItem = Nothing
    163. End Try
    164. End With
    165. Catch ex As Exception
    166. MsgBox(ex.Message)
    167. Exit Try
    168. End Try
    169. End If
    170. Catch ex As Exception
    171. MsgBox(ex.Message)
    172. End Try
    173. End Sub


    VB.NET-Quellcode

    1. Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListView1.SelectedIndexChanged
    2. Try
    3. With DirectCast(sender, ListView)
    4. If .FocusedItem IsNot Nothing Then
    5. 'FileInfo aus dem ListviewItem.Tag holen
    6. Dim locFi As IO.FileInfo = CType(.FocusedItem.Tag, IO.FileInfo)
    7. AxAcroPDF1.LoadFile(locFi.FullName)
    8. locFi = Nothing
    9. End If
    10. End With
    11.  
    12. Catch ex As Exception
    13. MsgBox(ex.Message)
    14. End Try
    15. End Sub


    Vielen Dank
    Bilder
    • 2018-10-27_11h11_45.jpg

      37,66 kB, 832×266, 125 mal angesehen
    Hallo,

    ich muss gestehen das ich aus deiner Beschreibung nicht genau herauslesen konnte wo genau dein Problem ist. Wäre es möglich, dass du deine Probleme in einzelne Themenbereiche/Arbeitsschritte gliederst? Dann kann man die einzeln durch arbeiten.

    Ach und nimm diese ganzen try/catch Blöcke raus. Wozu sollen die sein? Die helfen dir erstmal gar nicht.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    Wenn ich das richtig verstanden habe geht es darum das wenn er auf A_1 klickt alle Dateien aus dem Ordner A_1 in die ListView aufgelistet werden sollen. Und dementsprechend auf
    die Unterordner Pressen/Formen usw aufgeteilt werden.
    Und wenn er dann was im ListView anklickt die PDF öffnen.

    Die Frage ist wo ist das Problem ? Funktioniert etwas nicht oder weißt du allgemein nicht wie du das angehst?
    Dann wie mein Vorposter schon sagt Try-Catch weg hier mal dazu was: TryCatch ist ein heißes Eisen
    Und den Microsoft.VisualBasic Namespace rausschmeißen.
    Du nutzt .NET nicht VB6 deshalb würde hier MsgBox eher MessageBox.Show() heißen. Siehe: Visual Studio - Empfohlene Einstellungen
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    @ijokur Um Deinen Post besser lesen zu können, wäre es gut, wenn Du diesen Deinen Post editierst und den Code in einen packst.
    Code markieren, auf Spoiler clicken.

    Do It :!:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!