Domanda

Ho un'applicazione MDI. Quando mostro una finestra di messaggio usando MessageBox.Show (), l'intera applicazione scompare dietro tutte le mie finestre aperte quando chiudo la finestra di messaggio.

Il codice non sta facendo nulla di speciale. In effetti, ecco la riga che richiama la finestra di messaggio all'interno di un modulo figlio MDI:

MessageBox.Show(String.Format("{0} saved successfully.", Me.BusinessUnitTypeName), "Save Successful", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly)

Me.BusinessUnitTypeName () è un getter di proprietà di sola lettura che restituisce una stringa, a seconda del valore di una variabile membro. Non ci sono effetti collaterali in questa proprietà.

Qualche idea?

È stato utile?

Soluzione

Rimuovi l'ultimo parametro, MessageBoxOptions.DefaultDesktopOnly .

Da MSDN :

  

DefaultDesktopOnly causerà il   applicazione che ha sollevato MessageBox   perdere la concentrazione. Il MessageBox che è   visualizzato non utilizzerà gli stili di visualizzazione.   Per ulteriori informazioni, consultare Rendering   Controlla con gli stili di visualizzazione.

L'ultimo parametro consente la comunicazione di un servizio Windows in background con il desktop attivo tramite csrss.exe! Vedi i post sul blog di Bart de Smet per i dettagli.

Altri suggerimenti

Rimuovi il parametro MessageBoxOptions.DefaultDesktopOnly e funzionerà correttamente.

DefaultDesktopOnly specifica che " La finestra di messaggio viene visualizzata sul desktop attivo " che causa la perdita di messa a fuoco.

Queste risposte sono corrette, ma volevo aggiungere un altro punto. Mi sono imbattuto in questa domanda mentre lavoravo con il codice di qualcun altro. Una semplice finestra di messaggio faceva spostare la maggior parte della finestra in primo piano:

MessageBox.Show (" Ciao ").

Si è scoperto, prima del MessageBox c'era un comando BindingSource.Endedit. BindingSource non era ancora collegato a nessun controllo, ma ha causato la modifica della posizione z della finestra.

Includo questa nota poiché la mia ricerca mi ha portato a questa domanda e ho pensato che potesse essere utile a qualcun altro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top