FolderBrowsDialog

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Niko Ortner.

    FolderBrowsDialog

    Ich weiß leider nicht warum aber ich bekomme es nicht hin das ich einfach einen "FolderBrowsDialog" anzeigen lasse. Dort einen Pfad aufrufe und diesen dann in einen String speichere...

    VB.NET-Quellcode

    1. Dim Fbd As New FolderBrowserDialog
    2. Private Sub Form1_Load(ByVal sender As System.Object, _
    3. ByVal e As System.EventArgs) Handles MyBase.Load
    4. Fbd.RootFolder = Environment.SpecialFolder.Desktop
    5. Fbd.SelectedPath = InitVerzeichnis
    6. End Sub
    7. Private Sub Button1_Click(ByVal sender As System.Object,
    8. ByVal e As System.EventArgs) Handles Button1.Click
    9. If Fbd.ShowDialog() = DialogResult.OK Then
    10. MessageBox.Show _
    11. ("Es wurde der Ordner " + Fbd.SelectedPath + " ausgewählt.")
    12. End If


    Da bekomme ich die meldung das er Environment nicht kennt...
    Mach es so:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. Using fbd As New FolderBrowserDialog
    3. fbd.SelectedPath = "c:\temp"
    4. If fbd.ShowDialog() = DialogResult.OK Then
    5. MessageBox.Show("Es wurde der Ordner " + fbd.SelectedPath + " ausgewählt.")
    6. End If
    7. End Using
    8. End Sub
    Bilder
    • fbd.jpg

      29,68 kB, 691×190, 154 mal angesehen
    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!
    @xtts02:
    Fbd.RootFolder ->
    Public Property RootFolder As System.Environment.SpecialFolder.
    Passt also.

    @axi92:
    Bei mir kennt er Environment.SpecialFolder.Desktop.
    Poste mal die gesamte Fehlermeldung.


    Edit:
    @RodFromGermany:
    Er muss, wenn er den Desktop standardmäßig ausgewählt haben möchte, sowieso über Environment gehen.
    (Oder den Pfad hardcoden, aber das macht man nicht, weil man den Benutzernamen nicht weiß)
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils

    Niko Ortner schrieb:

    Er muss ... sowieso über Environment gehen.
    Das ist mir klar, allerdings bekommt er von mir keinen fertigen Code, meinen muss er halt nach seinen Bedürfnissen modifizieren. :thumbsup:
    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!
    Danke!

    Wäre es möglich mir noch zu sagen wie ich die Sub aufrufe?
    Oder soll ich ein neues Thema starten?


    Aufruf bei button:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Makros.DWG() 'Versuch1
    Call Makros.DWG() 'Versuch2
    End Sub


    Ja und die Sub liegt in einem anderen Modul eben "Makros" und heißt DWG.

    Public Sub DWG(ByVal ThisApplication As Inventor.Application)





    Sry für das nicht syntax highlighting, bei mir werden die buttons nicht geladen.
    Da können wir keinen Plan haben, weil wir nicht wissen, was Inventor.Application ist (Oder hab ich nur noch nie davon gehört?).

    Call ist schon mal VB6-Style. Wird bei den .Net VBs nicht mehr benötigt.

    Makros.DWG ist es auch nicht, da Makros ein Modul ist.

    Richtig müsste es mit

    VB.NET-Quellcode

    1. 'In einer Sub/Function
    2. DWG(DasApplicationDingensDaWelchesBenötigtWird)


    Der Nachteil bei Modulen ist, dass die Methoden nicht über Modulname.Methodenname aufgerufen werden, sondern von überall aus mit Methodenname verfügbar sind.
    Das macht das Ganze unübersichtlich.

    Besser, wenn Du "Module Makros" zu "Class Makros" änderst, und dann den Methoden den Shared Modifier verpasst.
    So z.B.

    VB.NET-Quellcode

    1. Public Class Makros
    2. Public Shared Sub DWG(Stuff As ApplicationDingens)
    3. End Sub
    4. End Class


    Dann kannst Du es so aufrufen:

    VB.NET-Quellcode

    1. 'In einer Sub/Function
    2. Makros.DWG(ApplicationZeug)


    Dadurch hat man mehr Ordnung im Programm.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils