locked
Je ne trouve pas l'équivalent du contrôle UpDown Vb6 ? RRS feed

  • Question

  • Bonjour,

    J'utilisais dans un prog Vb6 le contrôle UpDown de Microsoft Windows Common Controls-2 6.0 (SP6) (MSCOMCT2.OCX).
    Je ne trouve pas son équivalent en VbNet.

    J'ai trouvé le NumericUpDown qui comporte une zone numérique, le DomainUpDown qui comporte une zone texte, et le VScroll qui ne propose pas une apparence satisfaisante même réduit pour masquer l'ascenceur.

    Le contrôle UpDown comportait juste 2 flêches verticales identiques à celles incluses dans le DTPicker (appelé aussi MonthView, issu du même OCX).

    Quelqu'un connaît-il un contrôle équivalent ? Merci

    Visual Studio 2008 - VbNET/Vb6(COM)
    mercredi 1 juillet 2009 10:11

Réponses

  • Bon, désolé si je donne moi-même la réponse: Oui, il est possible d'ajouter dans la boite à outils un composant COM provenant d'un assembly "Interop" créé lors d'une mise à niveau automatique Vb6 vers Vb2008.

    J'ai fait clic droit dans la boite à outils "choisir les éléments", et j'ai choisi "Microsoft UpDown Control 6.0 (SP4)" dans l'onglet des composants COM.

    J'ai pu ainsi l'ajouter en mode design sur mon formulaire en remplacement du Label issu de la mise à niveau.

    Merci à Nikho et Biche pour leurs conseils concernant l'équivalent NET du contrôle que je suivrait quand je remplacerai mes contrôles COM par des contrôles NET.
    Projet volumineux en cours de migration de Vb6 à VbNet2008 Visual Studio 2008 - VbNET/Vb6(COM)
    • Marqué comme réponse Golard jeudi 2 juillet 2009 14:59
    jeudi 2 juillet 2009 14:59

Toutes les réponses

  • Bonjour, je ne crois pas que tu puisses trouver un contrôle exactement équivalent directement dans le framework mais rien ne t'empêche de créer ton propre contrôle à partir des contrôles NumericUpDown ou DomainUpDown.

    Voici un lien qui présente des exemples de modifiactions en VB dans dans ce but : http://visualbasic.about.com/od/usingvbnet/l/aa082103a.htm

    mercredi 1 juillet 2009 10:45
  • Effectivement, le plus simple serait de le dériver d'un des contrôles existants. Dans quel but tu as besoin de ce contrôle? En fouillant sur le net, tu peux surement trouver quelque choses déjà fait qui te conviendrait.


    Microsoft MVP C# :: mongeon.devrpm.ca
    mercredi 1 juillet 2009 12:09
  • Merci pour vos réponses.

    Pour répondre à votre question, j'utilise le UpDown juxtaposé à un DTPicker. J'ai ainsi en ligne:
    a) la zone de saisie de mon DTPicker (formaté "mm:ss.0", "mm:ss.1", ...  à "mm:ss.9")
    b) les 2 flêches de réglage des mm et des ss du DTPicker (propriété UpDown à True)
    c) les 2 flêches du contrôle UpDown qui me permettent de choisir les dixièmes de secondes (visualisé en changeant le format du DTPicker)

    J'ai réussi à reconstruire un équivalent en VbNet avec un DateTimePicker et le NumericUpDown en masquant la zone numérique du NumericUpDown en arrière-plan derrière le DateTimePicker.

    Cependant, pour l'instant, mon projet est en migration depuis Vb6 et je ne peux pas me permettre d'avoir de "jolis" contrôles bleutés au milieu de tous mes anciens contrôles (je vbnetiserai les contrôles plus tard...).

    En fait, je crois que la disparition du contrôle UpDown de mon formulaire est un bug de mise à niveau (il a été remplacé par un label lors de la mise à niveau). En effet, le DTPicker du même ocx est, lui, toujours présent.
    Pour solutionner mon problème, je vais essayer de re-créer dynamiquement les contrôles UpDown disparus, à partir des assemblys AxInterop.MSComCtl2.dll et Interop.MSComCtl2.

    Existe-t'il un moyen de faire apparaître les contrôles provenant d'assemblys "interop" dans la boite à outils ? ça m'éviterait d'avoir à gérer une création dynamique car je souhaite modifier au minimum mon code pour l'instant...


    Visual Studio 2008 - VbNET/Vb6(COM)
    mercredi 1 juillet 2009 14:57
  • Bon, désolé si je donne moi-même la réponse: Oui, il est possible d'ajouter dans la boite à outils un composant COM provenant d'un assembly "Interop" créé lors d'une mise à niveau automatique Vb6 vers Vb2008.

    J'ai fait clic droit dans la boite à outils "choisir les éléments", et j'ai choisi "Microsoft UpDown Control 6.0 (SP4)" dans l'onglet des composants COM.

    J'ai pu ainsi l'ajouter en mode design sur mon formulaire en remplacement du Label issu de la mise à niveau.

    Merci à Nikho et Biche pour leurs conseils concernant l'équivalent NET du contrôle que je suivrait quand je remplacerai mes contrôles COM par des contrôles NET.
    Projet volumineux en cours de migration de Vb6 à VbNet2008 Visual Studio 2008 - VbNET/Vb6(COM)
    • Marqué comme réponse Golard jeudi 2 juillet 2009 14:59
    jeudi 2 juillet 2009 14:59