Zobrazení dialogu pro kopírování souboru   zodpovězená otázka

VB.NET, Komponenty, WinForms

Zdravím v tuto brzkou ranní hodinu,

potřebuji ve své aplikaci zobrazit průběh kopírování někdy celkem objemných dat, a napadlo mne, zda VB neumí zobrazit (import?) Windowsácký dialog pro kopírování souborů?

Děkuji

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

Je to trochu složitější a přímo v .NET frameworku to není, ale na serveru CodeProject je knihovna, která Ti to v .NETu zpřístupní. Stáhni si demo project, asi se musíš zaregistrovat, pokud ještě nejsi. V tom demu určitě najdeš, jak se to dělá, a bude tam i ta knihovna. Kdyby byl nějaký problém, napiš.

http://www.codeproject.com/dotnet/winpro...

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jsem zaregistrovaný a teď jsem to vyzkoušel, funguje to skvěle, díky.

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

Tak mi to nedalo, podíval jsem se na to, a je to poměrně jednoduché. Do projektu si přidáš do referencí knihovnu z toho archivu (Bin\WinProgressdialog.dll), který si stýáhneš na dotyčné stránce. Použití je pak jednoduché (přeložil jsem komentáře):

'hlášky, které se budou střídat jako indikátor stavu
Private m_Activities As String() = New String() {"first", "few entries", "don't show up", "because of", "default 2 sec delay", "Learning General Relativity...", "Watching movies...", "Learning Game Theory...", "Writing Code Project articles...", "Meeting people...", "Exploring Juneue...", "Reading news...", "Theorizing instruction-memory equivalece..."}


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim progressDialog As New WinProgressDialog.ProgressDialog
        Try
            progressDialog.ProgressBarVisible = False
            'nastavit parametry
            progressDialog.Show(Me.Handle.ToInt32, "Christmas Time Status", "Spending Christmas Time", m_Activities.Length)

            For dayIndex As Integer = 0 To m_Activities.Length - 1
                'Nastavit do dialogu hlášku a zkontrolovat, jestli uživatel nekliknul na Storno
                If progressDialog.UpdateProgress(dayIndex, m_Activities(dayIndex)) Then
                    MsgBox("You cancelled!!")
                    Exit For
                End If

                'Počkat 2s, aby bylo něco vidět
                Threading.Thread.CurrentThread.Sleep(2000)
            Next
        Finally
            'dialog musí být vždycky ukončen, jinak nezmizí
            progressDialog.Dispose()
        End Try
    End Sub
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Á, tady byl někdo rychlejší.

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

A tobě se zobrazí dialog pro Visty? Ten je poněkud jiný ne?

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

Je, ale to by mělo být v režii operačního systému. Ta knihovna podle mě akorát zavolá zobraz systémový dialog, dej mu takovejhle text, a systém to už udělá. Ale nevím, na Vistě jsem to nezkoušel. Zkusím a dám vědět.

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

Záleží na tom, co chcete zobrazovat. Pokud by Vám šlo opravdu jen o kopírování souborů, použijte vestavěnou funkci, které můžete nastavit, zda se má dialog při kopírování zobrazit. Používat lze takto:

FileIO.FileSystem.CopyDirectory("c:\zdrojovaslozka", "c:\cilovaslozka", FileIO.UIOption.AllDialogs, FileIO.UICancelOption.DoNothing)
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jde opravdu jen o kopírování souborů, ale ne na lokálku, ale na FTP síť. Nemyslím tedy že by tento kód mohl být úspěšný, ale za zmínku to samozřejmě stojí. moje chyba, že jsem neuvedl fakt, že chci kopírovat na FTP.

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