2009-04-29 8 views
2

Je tente de créer mon propre contrôle déroulant de style de saisie semi-automatique dans C# .net2.0. Pour la rapidité du développement, j'ai construit mon contrôle en tant que UserControl, mais je me suis posé la question de le faire de cette façon. Lorsque la liste déroulante personnalisée est dessinée, je dois redimensionner la zone UserControl pour pouvoir afficher la liste des options. Idéalement, je veux être capable d'imiter le comportement de la liste drodpown en ce que la liste des options est dessinée 'flottante' et n'est pas contrainte par la hauteur et la largeur de UserControls (ni même les limites des formes parentales). Une info-bulle est un autre exemple du «flottement» sans contrainte que je désire. La seule façon que je peux penser de réaliser cela est de créer à la volée un nouveau formulaire sans bordure ou barre de titre et l'afficher lorsque la fenêtre contextuelle est requise.Winforms Création d'un panneau de style Dropdown

Y a-t-il une meilleure façon (mais aussi rapide) de faire cela?

TIA

Répondre

1

Vous devez utiliser un formulaire ou NativeWindow pour permettre le contrôle de flotter correctement. Pour faire un formulaire, suivez le contrôle est assez facile, mais il est plus difficile à mettre en œuvre et à gérer tous les problèmes de mise au point/masquage, surtout si vous avez besoin de tabulation/navigation de clé transparente.

1

Vous pouvez essayer de créer un contrôle basé sur le contrôle du bouton déroulant ToolStrip. Je crois que ce contrôle a la fonctionnalité que vous recherchez. J'ai trouvé cette référence pour créer des contrôles basés sur le ToolStrip, vous pourriez essayer de commencer avec ceci.

http://blogs.msdn.com/jfoscoding/attachment/1335869.ashx