2010-08-31 3 views
0

Je crée une application Windows qui communique avec un microcontrôleur. Parfois, une erreur de communication se produit qui doit être signalée à l'utilisateur. Par exemple, si le câble est débranché ou si le microcontrôleur perd son alimentation.Des erreurs contextuelles modales bloquent les mises à jour de l'interface graphique MDI parent

Je me suis battue avec cela pendant un certain temps maintenant, je suis de retour à ma solution originale. La solution d'origine consistait à faire des popups, mais d'autres étant parfois ennuyants, bloquaient parfois l'interface graphique parent MDI de mettre à jour son affichage. Certaines choses peuvent arriver pendant que le popup est encore ouvert et cela cause des problèmes.

J'ai essayé de rendre le popup non-modal, et bien que cela ait aidé l'interface graphique, le patron n'a pas aimé que le popup puisse être caché par d'autres fenêtres.

Quelles sont les meilleures pratiques pour signaler les erreurs?

Soit dit en passant, j'avais un autre thread avec mes problèmes de solution alternative: Tooltip baloon display position (for error notification)

Répondre

0

Vous pouvez faire une fenêtre de plus haut sans en faire modal ... quelle langue vous codez en?

+0

C# avec. NET Framework (3.5) Je l'avais mis dans les tags :) – Roast

+0

Oh, à droite:). –

1

Il existe également d'autres façons de communiquer avec l'utilisateur ... une icône clignotante dans la barre d'état système, un voyant d'état sur la fenêtre principale qui passe du vert au rouge lorsque la connexion est perdue.

* Mise à jour *

Clignotant une icône dans la barre d'état système est aussi simple que la création d'une minuterie, et sur l'événement tique, soit afficher/masquer l'icône ou le mettre d'une icône à une autre. Vous pouvez trouver un exemple ici:
http://www.freevbcode.com/ShowCode.asp?ID=6826

juste la question ... relus si vous cherchez à clignoter la fenêtre de la barre des tâches, il y a plus à ... Je ne serais pas aller avec cette approche, parce que (1) la barre des tâches clignotante peut être désactivée par l'utilisateur, et (2) il n'y a rien pour indiquer pourquoi il clignote. Mais si c'est ce que vous voulez, regardez ici:
http://pietschsoft.com/post/2009/01/26/CSharp-Flash-Window-in-Taskbar-via-Win32-FlashWindowEx.aspx

+0

J'ai une petite icône de câble dans la barre d'état qui va de connecté à déconnecté quand cela s'est produit, cela ne semble pas être suffisant pour mon patron. Comment puis-je faire quelque chose comme ce clin d'œil? – Roast

+0

Je n'ai pas d'icône de barre d'état système, c'est une barre d'état dans le parent MDI. Je ne veux pas faire clignoter quoi que ce soit en dehors de l'interface graphique de l'application. – Roast

+0

Okay ... même réponse, une minuterie, et sur la coche masquer ou afficher l'icône, ou passer d'une icône à l'autre. Démarrer ou arrêter la minuterie dans tout ce qui détecte la connexion rompue –

Questions connexes