2010-05-04 3 views
0

Dans mon MouseDoubleClick je peux courir dans un cas où je voudrais appeler tous les contrôles dans une liste avec MouseDoubleClick. Cependant, je ne peux pas appeler MouseDoubleClick, seulement ajouter/supprimer des événements à la chaîne.Comment appeler un événement MouseDoubleClick? WinForm

Comment appeler MouseDoubleClick/OnMouseDoubleClick?

ATM je contourne le problème depuis que je connais les objets MouseDoubleClick fonction et je passe dans les paramètres moi-même appelant cette fonction spécifique. Comment puis-je appeler l'événement dans le cas je ne sais pas quelle fonction est réglée sur le contrôle MouseDoubleClick

+0

Essayez d'utiliser une étiquette qui a été utilisé avant, au lieu d'être la première question avec le tag « winform ». – ChessWhiz

+0

bizarre, je ne savais pas qu'il n'y avait pas un tag winform ... –

+0

Essayez plutôt la balise "winforms". – ChessWhiz

Répondre

0

i contourner le problème, car je sais que les objets fonction MouseDoubleClick et Je passe dans les paramètres moi-même en appelant cette fonction spécifique. Comment puis-je appeler l'événement dans le cas je ne sais pas quelle fonction est réglée sur le contrôle mouseDoubleClick

0

Il y a un certain nombre de façons dont vous pouvez le faire:

  • Comme vous le faites, Hard- codez les appels directement. Pas une approche très flexible. Ajoutez votre propre méthode interne pour appeler les contrôles (par exemple, implémentez une interface spéciale) ou un événement que vous déclenchez et auquel tous les autres contrôles intéressés s'abonnent. Cela ne fonctionne que si vous avez le code source pour tous les contrôles, ou faites vos propres UserControls, ce qui pourrait être beaucoup de travail. Envoyez un message WM_LBUTTONDBLCLICK à la fenêtre sous-jacente pour chaque contrôle dans votre liste. Cela devrait fonctionner pour n'importe quel type de contrôle tant qu'ils ne font rien de trop méchant dans leurs gestionnaires. Notez que vous devrez peut-être élaborer de fausses coordonnées x, y au sein de chaque contrôle pour l'amener à penser que le double clic était à l'intérieur de ses propres limites - des doubles clics en dehors des limites de contrôle pourraient entraîner des comportements indéfinis. Et bien sûr, l'emplacement du clic dans le contrôle peut être important (par exemple, vous pouvez double-cliquer sur les éléments affichés dans une zone de liste de contrôle)

Questions connexes