Button As DialogResult

lunedì 24 maggio 2010 - 16.03

memmo77 Profilo | Expert

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

>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

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

>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/
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5