2011-08-10 4 views
1

Ma fonction MessageBox.Show() fonctionne bien lorsque j'ai commencé à double-cliquer sur myApp.exe. Mais quand j'ai essayé de joindre le processus d'application avec le code source. et définir le point d'arrêt Au code ci-dessous, cela ne fonctionne pas. Ce que je veux dire, c'est que le MessageBox n'a pas surgi. Et le code a été intercepté par une autre gestion d'exception externe. Cela est-il dû à un problème de synchronisation multi-thread?La fonction MessageBox.show() ne fonctionne pas parfois

Je ne sais pas pourquoi? Merci.

if (File.Exists(myConfigFile)) 
{ 
    doc.Load(myConfigFile); 
} 
else 
{ 
    MessageBox.Show("Read " + myConfigFile + " failed, can't find the file", 
    "Critical Warning", 
    MessageBoxButtons.OK, 
    MessageBoxIcon.Error); 
} 
+1

Regardez votre barre des tâches. Je pense que vous trouverez que la fenêtre pour le MessageBox apparaît ailleurs dans la barre des tâches. Cliquez dessus, et le MessageBox apparaîtra. –

+0

J'ai vérifié et mon bloqueur de pop-up n'a pas été allumé. Je pensais que ce n'est pas possible par la raison. –

+1

Les bloqueurs de fenêtres contextuelles n'affectent que votre navigateur Internet; ils n'ont aucun effet sur les applications Winforms. –

Répondre

1

Je pense que votre code source a une certaine différenciation du processus joint. vous devez d'abord reconstruire votre solution, puis démarrer votre nouvelle application exe à partir du dossier de solution "bin \ debug ou bin \ release" en fonction de votre cible de génération, puis associer le processus d'application au code source.

+0

J'ai ajouté 'Thread.sleep (10000);' et joint le code source à app.exe. J'ai vérifié mon code, et ça fonctionne bien. Finalement, mon problème résolu en reconstruisant ma solution. Merci. –

1

MessageBox.Show ne peut pas être utilisé dans une application Web. Vous pouvez utiliser javascript dans vos pages comme alert(123).

Questions connexes