BrowseForFolder   zodpovězená otázka

VB.NET

Public Class BrowseForFolder
    Inherits System.Windows.Forms.Design.FolderNameEditor

    Dim bDialog As New FolderBrowser()
    Public Function BrowseDialog(ByVal sTitle As String)
        With bDialog
            .Style = FolderBrowserStyles.BrowseForEverything
            .StartLocation = CType(CurUserSettZal, FolderBrowserFolder) 'FolderBrowserFolder.Desktop
            .Description = sTitle
            .ShowDialog()
            BrowseDialog = .DirectoryPath()
        End With
    End Function

Potřebuji do StartLocation přiřadit libovolný adresář, požaduje typ integer, co s tím? Dik za nápovědu.

p.

End Class

nahlásit spamnahlásit spam 0 odpovědětodpovědět

K čemu to má sloužit? Vy snad chcete vyrábět nějakou vizuální komponentu, kde bude toto použito, nebo jste jen nepochopil účel té třídy?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

StartLocation není evidentně adresář, kde má začít, ale pozice okna na obrazovce, resp. asi to bude nějaký enum či co.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak to jsem vedle jak ta jedle...

Potřebuji pouze vybrat adresář a něco do něho nebo z něho zkopírovat. Tak aby se otevřelo v určité adresář. úrovni. Použit by šlo i následující..Akorat neumim přiřadit RootFolder, chce typ integer. Pokud na to jdu dobře?

    Public Sub SaveAsToAdresar()
        Dim fbd As New FolderBrowserDialog
        Dim selectedFolder As String
        'fbd.RootFolder = CurUserSettZal

        If fbd.ShowDialog() = DialogResult.OK Then
            selectedFolder = fbd.SelectedPath
        End If
    End Sub
nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Opakuji znovu: Víte vůbec na co ta třída je? Nepokoušíte se náhodou znovu udělat FolderBrowserDialog?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Mozna jdu s kanonem na komara, googlenim nacházím postup vybírání adresáře pomocí této třídy. Pokud existuje lepší způsob rád se poučím. Ve VB6 jsem na to šel přes API, to mi u .net příjde jěště jako větší zvěrstvo.

Dik za trpelivost.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Přesně jak jsem si myslel, nevíte na co to je a použil jste hned první hovadinu, kterou jste našel. Tato třída není klasické známé okno pro výběr složky, ale speciální třída pro komponenty, kde je potřeba v návrhovém režimu v jejích vlastnostech vybrat složku (o čemž také napovídá namespace System.Windows.Forms.Design). To co potřebujete je už hotové v System.Windows.Forms.FolderBrowserDialog a používá se to následovně:

Using folderBrowser As New FolderBrowserDialog
  folderBrowser.SelectedPath = "C:\Program Files"
  If folderBrowser.ShowDialog(Me) = DialogResult.OK Then
    MessageBox.Show(folderBrowser.SelectedPath, _
                    "Vybraná složka", _
                    MessageBoxButtons.OK, _
                    MessageBoxIcon.Information)
  End If
End Using

Mimochodem v .NETu je to asi tak tisíckrát jednodušší než pomocí Windows API.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Bezva, diky. Funguje jak potřebuji.

Jaký význam má "Using"? Nechal jsem celý kod ve formuláři, ale včlenil jsem ho do procedury.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Třídy, které udržují nějaké unmanaged resources a tedy nemohou být implicitně uvolněny garbage collectorem implementují rozhraní IDisposable a pomocí Using se zaručí zavolání jeho Dispose metody a tedy uvolnění těchto unmanaged resources. Ekvivalentní kód k výše uvedenému bez Using by byl:

Dim folderBrowser As New FolderBrowserDialog
...
folderBrowser.Dispose()

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Diky za užitečné info.

Měl bych prosbičku zda by šel napsat článek o manipulaci se soubory a adresáři pomocí vestavěných tříd .net. Případně řízení atributů souborů.

Strukturou něco jako zde:

http://www.activexperts.com/activmonitor...

Jěště jednou diky, tema mozno uzavřít.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback