Question

comment puis-je ajouter un événement de double-clic à un contrôle qui n'a pas d'événement de double-clic = P

comme une combo !!!

Était-ce utile?

La solution

<sarcasm> Utilisez davantage de points d’exclamation - le travail est généralement terminé! </sarcasm>

Mais sérieusement, vous ne pouvez pas. Essayez de rechercher la & Quot; simple Cliquez sur & Quot; événement et ensuite voir si le temps entre deux clics successifs est assez petit. Je ne sais pas où vous pouvez trouver le calendrier du double-clic du système. Essayez googler pour cela.

Cependant, je réfléchirais sérieusement à l'ajout d'un tel comportement non standard à un contrôle standard. Les utilisateurs ne s’attendent normalement pas à cela, alors ils seront probablement mécontents de cela. N'oubliez pas: la meilleure interface utilisateur est celle qui offre le moins de surprises à l'utilisateur. Mieux vaut penser à une autre façon de faire ce que vous essayez de faire.

Autres conseils

En fait, un System.Windows.Forms.ComboBox a un événement DoubleClick, il est juste caché de votre éditeur:

    // Summary:
    //     This event is not relevant for this class.
    [EditorBrowsable(EditorBrowsableState.Never)]
    [Browsable(false)]
    public event EventHandler DoubleClick;

Je suppose qu'ils ont choisi de cacher l'événement parce qu'il ne s'appellera jamais :):

La réponse courte est vous ne le faites pas .

La réponse longue consiste à vous abonner à l'événement Click et à voir si un autre événement Click a été appelé au cours des dernières millisecondes XXX, comme dans cet article .

vous ne double-cliquez pas dessus, vous donnez l'impression que vous avez double-cliqué dessus, si vous êtes assez maléfique.

private void box_MouseDown(object sender, MouseEventArgs e)
{
      if (e.Button == MouseButtons.Left)
      {
         TimeSpan Current = DateTime.Now - LastClick;
         TimeSpan DblClickSpan =
         TimeSpan.FromMilliseconds(SystemInformation.DoubleClickTime);

         if (Current.TotalMilliseconds <= DblClickSpan.TotalMilliseconds)
         {
     // Code to handle double click goes here
         }

         LastClick = DateTime.Now;
      }
}

double-cliquez sur la liste déroulante

Selon ma copie de Reflector, System.Windows.Forms.ComboBox, de l'assembly System.Windows.Forms, version 2.0.0.0, a un événement DoubleClick.

Le contrôle TextBox de la liste déroulante vole / consomme l'événement DoubleClick. Vous devez donc utiliser l'événement Click de la zone de liste déroulante pour écouter les deux clics?

Source

Je suis incapable de trouver un moyen (étant donné que la zone de texte mange l'événement); J'ai également vu une note selon laquelle le double clic n'est pas pertinent pour ce contrôle. Je n'ai pas non plus trouvé le moyen de capturer l'événement à partir du contrôle de texte interne

Vous voudrez peut-être repenser la raison pour laquelle vous souhaitez modifier le comportement par défaut (à savoir, sélectionner le texte actuel). Si vous modifiez trop le comportement attendu, votre application devient beaucoup plus difficile à utiliser.

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