Question

J'ai une application MDI. Lorsque j'affiche une boîte de message à l'aide de MessageBox.Show (), l'application entière disparaît derrière toutes mes fenêtres ouvertes lorsque je ferme la boîte de message.

Le code ne fait rien de spécial. En fait, voici la ligne qui appelle la boîte de message à partir d'un formulaire enfant MDI:

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

Me.BusinessUnitTypeName () est un getter de propriété en lecture seule qui renvoie une chaîne, en fonction de la valeur d'une variable membre. Il n'y a pas d'effets secondaires dans cette propriété.

Des idées?

Était-ce utile?

La solution

Supprimez le dernier paramètre, MessageBoxOptions.DefaultDesktopOnly .

De MSDN :

  

DefaultDesktopOnly entraînera le   application qui a déclenché la MessageBox   perdre le focus. Le MessageBox qui est   affiché n'utilisera pas les styles visuels.   Pour plus d'informations, voir Rendu   Contrôles avec des styles visuels.

Le dernier paramètre permet la communication d’un service Windows en arrière-plan avec le bureau actif au moyen de csrss.exe! Voir l'article de blog de Bart de Smet pour plus de détails.

Autres conseils

Supprimez le paramètre MessageBoxOptions.DefaultDesktopOnly et il fonctionnera correctement.

DefaultDesktopOnly indique que " le message est affiché sur le bureau actif ". qui provoque la perte de focus.

Ces réponses sont correctes, mais je voulais ajouter un autre point. Je suis tombé sur cette question en travaillant avec le code de quelqu'un d'autre. Une simple boîte de message entraînait le déplacement de la fenêtre la plus en avant vers l'arrière:

MessageBox.Show ("Hello").

Il s’avère qu’il y avait une commande BindingSource.Endedit avant le MessageBox. Le BindingSource n'était encore connecté à aucun contrôle, mais la fenêtre a été modifiée pour modifier les positions z.

Je n'inclus que cette note, car ma recherche m'a amené à cette question et j'ai pensé que cela pourrait être utile à quelqu'un d'autre.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top