Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    [windows form .NET]

    Se la domanda non fosse pertinente, prego spostarla nel forum opportuno. Grazie.

    In un form ho un controllo TreeView, un pulsante link ed una label.

    Il click del pulsante si apre la finestra di ricerca file.
    Alla conferma, il TreeView viene popolato dai dati del file.

    Il problema è che l'operazione potrebbe essere lunga qualche secondo. Vorrei che apparisse un qualcosa che indichi all'utente di aspettare un poco, e che poi scompaia alla fine del popolamento del TreeView.

    Mi date una mano?
    Pietro

  2. #2
    Che linguaggio? Potresti usare una ProgressBar...

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da mardok30
    Che linguaggio? Potresti usare una ProgressBar...
    Il linguaggio non importa perchè, pur lavorando in basic, ritengo mio dovere interpretare il c#.

    Mi spiego, in una pagina web aspx avrei usato un gif animato con una scritta tipo "attendere prego" etc...
    Però, il problema è che sono abbastanza arruginito con le window form e gli eventi del TreeView

    Pietro

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Il mio suggerimento è quello di ricorrere ai thread, creando un percorso asincrono dell'applicazione in cui i dati di interesse vengono caricati all'interno di una propria struttura in memoria, una sorta di "inventario"; svolgendo l'operazione in un thread separato, il thread primario di esecuzione dell'applicazione Windows Forms sarebbe libero di ricevere e gestire i messaggi in coda, compresi quelli dedicati al "refresh" della finestra video, con la possibilità di interrompere l'elaborazione in caso di necessità.

    Comprendo benissimo che, posto in questa chiave teorica, la spiegazione non fornisce un risultato immediatamente apprezzabile e impiegabile nel proprio codice, comunque puoi trovare una spiegazione concisa ma utile in un articolo su CodeProject che tratta l'argomento APM (Asynchronous Programming Model).

    Ciao!

    P.S.: ho corretto il titolo della discussione per renderlo conforme al Regolamento.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    ringrazio alka per la risposta.
    Abbi pazienza, ma in questo momento sono abbastanza incompetente sulla programmazione window, perciò dirò senzaltro stupidate.
    Allora, il tuo suggerimento è corretto, ma è esagerato nel mio caso. Nel mio caso è bastato mettere una label invisibile col messaggio "Prego attendere...". Quando lo ShowDialog restituisce Windows.Forms.DialogResult.OK, basta rendere visibile il messaggio, far partire il caricamento dell'albero e, alla fine, ritornare a nascondere la label.
    Il codice che ho provato a mettere è questo:
    codice:
    Dim op As New OpenFileDialog()
    With op
    	.Filter = "*.mwf|*.mwf|*.mwx|*.mwx|*.xml|*.xml"
    	If .ShowDialog() = Windows.Forms.DialogResult.OK Then
    		Me.Label1.Text = .FileName
    		Me.Label2.Visible = True
    		Me.Label2.Refresh()
    		Me.alberoXML.Nodes.Clear()
    
    		Select Case Path.GetExtension(.FileName).ToLower()
    			Case ".mwf"
    				DisplayXmlTree(getMwxFromMwf(.FileName))
    			Case Else
    				DisplayXmlTree(.FileName)
    		End Select
    		Me.Label2.Visible = False
    	End If
    End With
    Ciao
    Pietro

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da pietro09
    Allora, il tuo suggerimento è corretto, ma è esagerato nel mio caso. Nel mio caso è bastato mettere una label invisibile col messaggio "Prego attendere...".[...]
    Beh, le tue esigenze mi sembravano più complesse, altrimenti te l'avrei suggerito io per primo.

    Scrivere in una Label "Prego attendere" e visualizzare un'animazione è una cosa ben diversa...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da alka
    Beh, le tue esigenze mi sembravano più complesse, altrimenti te l'avrei suggerito io per primo.

    Scrivere in una Label "Prego attendere" e visualizzare un'animazione è una cosa ben diversa...
    Beh! l'ultima cosa che vorrei è quella di non sembrare riconoscente ad una buona risposta ma io adesso sono nella condizione di chiedere l'abcd delle windows form
    ciao
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.