2009-07-14 7 views
0

J'ai une application MDI WinForms dans laquelle le formulaire parent MDI a un ToolStrip, MenuStrip et StatusStrip. Chaque fois que la souris est déplacée sur l'une de ces commandes, le curseur se transforme en un curseur 'wait' (une flèche avec un sablier). Cela semble être le comportement par défaut en ce qu'il n'y a pas de code pour y arriver. La propriété UseWaitCursor de ToolStrip et MenuStrip est false; StatusStrip n'a pas cette propriété.Curseur d'attente indésirable dans l'application WinForms

Cela se produit à la fois dans les versions de débogage et de publication et confond les utilisateurs qui pensent que l'application «fait» quelque chose alors que ce n'est pas le cas!

Est-ce que quelqu'un sait ce qui cause cela et, plus important encore, comment l'arrêter?

Répondre

0

Stupide. J'ai eu une ligne de code indésirable dans une déclaration finale définissant le curseur à AppStarting.

0

Les trois contrôles possèdent une propriété Cursor qui modifie l'apparence du curseur lorsque la souris survole le contrôle. Assurez-vous que cette propriété est définie par défaut et n'est pas modifiée dans votre code.

0

Je ne vois pas la même chose dans mon application MDI. Essayez de créer un nouveau projet, en ajoutant uniquement ces contrôles et en cours d'exécution. Si aucun curseur n'apparaît, il se passe quelque chose d'autre.

HTH

3

Il semble que cela doit avoir été changé dans une feuille de propriétés, les suggérerais vérifier designer.cs si vous avez déjà vérifié votre propre code.

A défaut, creuser un peu. Essayez d'exécuter l'extrait suivant sur le formulaire et de voir s'il renvoie des résultats:

var theCulprit = this.Controls.Cast<Control>().Where(ctrl => ctrl.UseWaitCursor); 
+0

+1. Technique intéressante. – RichardOD