PDF Viewer in VB 2010

  • VB.NET

Es gibt 39 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Ok habe jetzt mal beide Versionen getestet und leider funzt es irgendwie nicht . :(
    Immernoch zeigt er die Pdf dateien links in der ListBox1 an und wenn ich sie auswähle bekomme ich keine vorschau im rechten Viewer

    VB.NET-Quellcode

    1. Public Class Form1Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Try
    3. For Each file In My.Computer.FileSystem.GetFiles("C:\Dokumente")
    4. ListBox1.Items.Add(My.Computer.FileSystem.GetName(file))
    5. Next
    6. Catch
    7.  
    8. End Try
    9. End SubPrivate Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
    10. Try
    11. AxAcroPDF1.LoadFile(ListBox1.SelectedItem.ToString)
    12.  
    13. Catch
    14. 'Hier kannst du reinschreiben, was passieren soll, wenn die PDF Datei nicht mehr existiert, oder ein anderer Fehler aufgetreten ist
    15. End
    16. Try
    17. End SubPrivate Sub AxAcroPDF1_OnError(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AxAcroPDF1.OnError
    18. End Sub
    19. End Class
    Bilder
    • Beispiel.jpg

      132,81 kB, 947×607, 219 mal angesehen
    zum Laden der Datei benötigst du den vollen Pfad, aber du fügst nur den Dateinamen ohne Pfad hinzu ;)
    Ok. Dann hier nochmal ein Code.

    VB.NET-Quellcode

    1. Public Class Form1Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Try
    3. For Each file In My.Computer.FileSystem.GetFiles("C:\Dokumente")
    4. ListBox1.Items.Add(My.Computer.FileSystem.GetName(file))
    5. Next
    6. Catch
    7.  
    8. End Try
    9. End SubPrivate Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
    10. Try
    11. AxAcroPDF1.LoadFile("C:\Dokumente\"+ListBox1.SelectedItem.ToString)
    12.  
    13. Catch es As Exception
    14. MsgBox(es.Message)
    15. End Try
    16. End Sub
    17. End Class
    Erstmal vielen dank für die tolle Hilfe hier :)

    Es funktioniert ohne euch wäre das nie was geworden :) .

    Da ich grad die zwei Experten hier habe ich noch zwei Fragen.

    1.Kann man die Liste auch so gestalten das man ein Menu festlegen kann wo die Pdfs hinterlegt sind.

    z.b Haus -> Küche = PDF... öffnen

    nennt sich glaub ich tree view .denke dort muß ich jedes dokument den namen zuordnen.

    2. Würde das Programm gerne immer im Vollbildmodus ausführen nur weiß ich leider nicht wie ich die Fenster dynamisch gestalten kann da ja jeder eine andere Bildschirmgröße hat müßten sich die Fenster

    ja auch anpassen und größer werden

    1.Kann man die Liste auch so gestalten das man ein Menu festlegen kann wo die Pdfs hinterlegt sind.

    z.b Haus -> Küche = PDF... öffnen

    nennt sich glaub ich tree view .denke dort muß ich jedes dokument den namen zuordnen.

    2. Würde das Programm gerne immer im Vollbildmodus ausführen nur weiß ich leider nicht wie ich die Fenster dynamisch gestalten kann da ja jeder eine andere Bildschirmgröße hat müßten sich die Fenster

    ja auch anpassen und größer werden
    1. Also du kannst es ja so machen, das du einfach mehrere Ordner erstellst. Einer für Haus usw.
    Und dann ganz einfach vor den Code, der jeden Ordner durchsucht:

    VB.NET-Quellcode

    1. ListBox1.Items.Add("Küche: oder was auch immer" )


    2. Wie meinst du das? Meinst du Maximiert? Dann musst du die WindowsState auf Maximized stellen.
    *hust* Anchor ist hier eine Eigenschaft und bezeichnet das Verhalten zum Rand bei einer Größenveränderung. Die Werte sollten für sich sprechen

    Für eine TreeView ist das gut geeignet, denn jedes TreeNode (im Prinzip ein Item) hat die Eigenschaft Path und gibt zurück wo es sich in der TreeView befindet. Beispiel

    Treeview:

    Quellcode

    1. | Item 1
    2. - Item 2
    3. |--- SubItem 1
    4. |--- SubItem 2
    5. |--- SubItem 3
    6. | Item 3
    Und wenn du bei SubItem 2 jetzt die Path-Eigenschaft abfragst kriegst du folgendes zurück:
    Item 1\SubItem 2

    Wenn du jetzt eine Treeview mit den Ordner und PDFs füllst dann kannst du ganz einfach auch wieder den Pfad zur Datei wiederherstellen.
    Gut zu wissen :) .

    Wie kann ich denn im Fenster AxAcroPDF1 als Hintergrund ein Bild einfügen und die Hintergrundfarbe auf transparent stellen ?
    Standardmäßig ist die Hintergrundfarbe ja weiß und leider gibt es im Eigenschafstfenster zu der Box diese Optionen nicht. ?(
    Die Hintergrundfarbe des Fensters kannst du nicht bestimmen, da dies von der angezeigten PDF abhängig ist.
    Hier aber nochmal ein Code, damit der PDF Reader nicht immer erscheint:

    VB.NET-Quellcode

    1. Public Class Form1Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. Try
    3. AxAcroPDF1.hide
    4. For Each file In My.Computer.FileSystem.GetFiles("C:\Dokumente")
    5. ListBox1.Items.Add(My.Computer.FileSystem.GetName(file))
    6. Next
    7. Catch
    8.  
    9. End Try
    10. End SubPrivate Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
    11. Try
    12. AxAcroPDF1.show
    13. AxAcroPDF1.LoadFile("C:\Dokumente\"+ListBox1.SelectedItem.ToString)
    14.  
    15. Catch es As Exception
    16. MsgBox(es.Message)
    17. End Try
    18. End Sub
    19. End Class

    VB.NET-Quellcode

    1. Imports System.IO
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. AxAcroPDF2.Hide()For Each file As String In Directory.GetFiles("C:\Dokumente\", "*.pdf")
    5. TryListBox1.Items.Add(My.Computer.FileSystem.GetName(file))
    6. Catch
    7. Except: End Try
    8. Next
    9.  
    10.  
    11. End
    12. SubPrivate Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
    13. Try
    14. AxAcroPDF2.Show()AxAcroPDF2.LoadFile("C:\\Dokumente\" + ListBox1.SelectedItem.ToString)
    15. Catch es As Exception
    16. MsgBox(es.Message)
    17. 'Hier kannst du reinschreiben, was passieren soll, wenn die PDF Datei nicht mehr existiert, oder ein anderer Fehler aufgetreten ist
    18. End Try
    19. End Sub
    20. Private Sub AxAcroPDF2_OnError(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AxAcroPDF2.OnError
    21. End Sub
    22. Private Sub ListView1_SelectedIndexChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
    23. End Sub
    24. Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs)
    25. End Sub
    26. Private Sub TreeView1_AfterSelect_1(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
    27. End Sub
    28. End Class

    Ok wenn ich jetzt ein tree-view box hinzufüge und eine struktur anlege kann ich dann in der ListBox nur einzelde ordener anzeigen lassen mit pdf ? z.b TreeView Menü VW -> Golf selected = ListView liest PDF im Ordner c:\golf
    Die zweite Frage wäre ob es möglich ist die PDFs ohne endung .pdf in der Listview anzeigen zu lassen .

    Sage schonmal danke für die Hilfe

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „tbsklat“ ()

    du nimmst statt : My.Computer.FileSystem.GetName() IO.Path.GetFilenameWithoutExtension und beim Laden hängst du einfach ein .pdf wieder dran ;)