Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Button As DialogResult
lunedì 24 maggio 2010 - 16.03
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
memmo77
Profilo
| Expert
683
messaggi | Data Invio:
lun 24 mag 2010 - 16:03
Salve. Ho inserito nella mia applicazione un bottone come quello di seguto:
Dim button As DialogResult
button = MessageBox.Show _
("Sicuri di voler avviare la procedura?", _
"Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
If button = Windows.Forms.DialogResult.Yes Then
AVVIO_ELABORAZIONE()
Else
'Me.Close()
End If
All'avvio dell'elaborazione, che è abbastanza lunga, vorrei togliere il messagebox, come posso fare?
Grazie
kataklisma
Profilo
| Senior Member
394
messaggi | Data Invio:
lun 24 mag 2010 - 16:10
>Salve.
Salve!
>Ho inserito nella mia applicazione un bottone come quello
>di seguto:
>
>Dim button As DialogResult
> button = MessageBox.Show _
> ("Sicuri di voler avviare la procedura?", _
>"Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
>MessageBoxDefaultButton.Button1)
> If button = Windows.Forms.DialogResult.Yes Then
> AVVIO_ELABORAZIONE()
> Else
> 'Me.Close()
> End If
>
>All'avvio dell'elaborazione, che è abbastanza lunga, vorrei togliere
>il messagebox, come posso fare?
Si freeza la GUI? "Semplice" devi eseguire "AVVIO_ELABORAZIONE()" in un thread diverso dal principale.
Ti riporto in un thread dove ho dato risposta ;)
http://www.dotnethell.it/forum/messages.aspx?ThreadID=34945
>Grazie
Di nulla!
Ciao!
------------------------------------------
Ignazio Catanzaro
http://blogs.dotnethell.it/swdev/
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
lun 24 mag 2010 - 19:45
Ciao a tutti e due
Provo a dire la mia, fermo restando il consiglio di kataklisma.
Probabilmente la procedura AVVIO_ELABORAZIONE() è onerosa in termini di CPU e partendo subito non da modo di chiudere la DialogResult, in quanto il codice che memmo ha scritto è corretto***.
Prova magari a ritardare l'avvio della procedura con "Threading.Thread.Sleep(500)" messo all'inizio della procedura stessa.
Poi magari si pianta tutto fino alla fine della Sub ma la Dialog dovrebbe chiudersi.
Dim button As DialogResult
button = MessageBox.Show _
("Sicuri di voler avviare la procedura?", _
"Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1)
If button = Windows.Forms.DialogResult.Yes Then
AVVIO_ELABORAZIONE()
End If
Public Sub AVVIO_ELABORAZIONE()
Threading.Thread.Sleep(500)
..........
End Sub
Ciao
alexmed
kataklisma
Profilo
| Senior Member
394
messaggi | Data Invio:
lun 24 mag 2010 - 19:51
>Ciao a tutti e due
>Provo a dire la mia, fermo restando il consiglio di kataklisma.
>Probabilmente la procedura AVVIO_ELABORAZIONE() è onerosa in
>termini di CPU e partendo subito non da modo di chiudere la DialogResult,
>in quanto il codice che memmo ha scritto è corretto***.
>
>Prova magari a ritardare l'avvio della procedura con "Threading.Thread.Sleep(500)"
>messo all'inizio della procedura stessa.
>Poi magari si pianta tutto fino alla fine della Sub ma la Dialog
>dovrebbe chiudersi.
>
>
> Dim button As DialogResult
> button = MessageBox.Show _
> ("Sicuri di voler avviare la procedura?", _
>"Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question,
>MessageBoxDefaultButton.Button1)
> If button = Windows.Forms.DialogResult.Yes Then
> AVVIO_ELABORAZIONE()
> End If
>
>Public Sub AVVIO_ELABORAZIONE()
>
> Threading.Thread.Sleep(500)
>
>..........
>
>End Sub
>
>Ciao
Concordo, ma se l'operazione è effettivamente cosi onerosa, è sicuramente meglio lanciarla in thread diverso gestendola magari con una barra d'avanzamento...
Ciao ;)
------------------------------------------
Ignazio Catanzaro
http://blogs.dotnethell.it/swdev/
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !