IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Un contrôle qui en cache un autre


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Par défaut Un contrôle qui en cache un autre
    Bonjour tout le monde,

    Je suis en train de me créer un contrôle date CtrlDate qui contient :
    - 1 label
    - 1 textbox
    - 1 MonthCalendar
    - 1 bouton

    J'ai fait en sorte que mon calendar ne soit pas ajouté automatiquement dans la liste des controles de mon CtrlDate, comme ça je le dimensionne à la taille de mon label+textbox+bouton comme ça il n'est pas super grand.

    J'espère que vous suivez toujours!

    Lorsque je clique sur mon bouton, j'ajoute et je rend visible le calendar au CtrlDate,je redimensionne le CtrlDate pour qu'on puisse voir le calendar. Si on reclique je fais le contraire.

    Le souci c'est lorsque je met sur un form mon CtrlDate et une testbox par exemple juste en desus, dès que je clique sur le bouton du CtrlDate le textbox1 disparait complètement de la form puis réapparait lorsque je reclique sur le bouton du CtrlDate.

    Ce que je voudrais faire c'est que le calendar s'affiche au dessus des contrôles qui peuvent êtres placés en dessous du CtrlDate sans que ceux-ci s'effacent!!

    Es-ce que ceux qui ont compris peuvent m'aider?
    Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Si c'est bien ce que je crois avoir compris, ça me semble parfaitement normal et je ne vois pas en quoi c'est un problème. Donc je me dis que j'ai peut-être pas bien compris

    Un petit screenshot rendrait les choses plus claires

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Par défaut
    Je me doutai que c'était pas super clair!! Je fais les screenshots ce midi

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Par défaut
    Voici les copies d'écran :

    L'écran "normal" sans l'affichage du calendrier :

    L'écran avec l'affichage du calendrier, le textbox Nom à disparu :

    Donc est il possible d'afficher le calendrier par dessus le controle nom ou pas?
    Images attachées Images attachées   

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    je comprends pas mieux

    mais pour gérer l'odre de profondeur, il y a bringtofront et sendtoback (on sait jamais)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Par défaut
    Je ré-explique!!!

    Sur l'image qui s'appelle "sans calendrier", j'ai deux contrôles :
    - Un contrôle perso CtrlCalend qui à pour label "Date maj" qui est composé de:
    - un label
    - une textbox
    - un bouton
    - un monthCalendar (affiché seulement lors du click sur le bouton)

    - Et juste en dessus un label avec un textbox (label vaut "Nom")

    Lorsque je suis sur ma form j'ai en visuel l'image "sans calendrier".
    Lorsque je clique sur le bouton de mon contrôle CtrlCalend, voir image "avec calendrier", le calendrier s'affiche, MAIS les contrôles placé en dessous disparaissent (label et textbox).

    Ceci viens du fait que lors du clic sur le bouton, je redimensionne le CtrlCalend pour qu'on voit le MonthCalendar.

    Ce que je voudrais c'est que le calendar s'affiche par dessus le label et la textbox c'est à dire sans les effacer du design lors du clic.

    Je crois que le DateTimePiker fait ceci, donc es-ce possible d'imiter ce comportement pour mon contrôle?

    J'espère avoir été plus clair

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par yoyopi Voir le message
    J'espère avoir été plus clair
    Non, pas vraiment... ou plutôt, ça confirme ce que j'avais cru comprendre. Je ne vois pas en quoi c'est un problème que la textbox soit masquée : elle n'est pas supprimée, seulement masquée temporairement tant que le calendrier est "déplié". Il suffit de replier le calendrier pour revoir la textbox. C'est le comportement normal de tous les contrôles qui se "déplient" (ComboBox, DateTimePicker, etc...)

  8. #8
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Par défaut
    oui tu as bien compris Tomlev! bravo!

    Ce que j'ai oublié de précisé pour essayer de ne pas compliqué encore plus, c'est que le label+la textbox situé en dessus de mon CtrlCalend ne font qu'un car il font partis d'un autre contrôle perso CtrlTxtBox.

    Ce qui m'embête c'est de ne même plus voir le label du CtrlTxtBox, je comprend que ce soit un comportement normal le fait que la textbox n'apparaisse plus!

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par yoyopi Voir le message
    Ce qui m'embête c'est de ne même plus voir le label du CtrlTxtBox, je comprend que ce soit un comportement normal le fait que la textbox n'apparaisse plus!
    Ben c'est pareil... le calendar masque tout ce qui est en dessous, mais je suppose qu'il n'a pas vocation à rester affiché, si ? C'est comme un ComboBox ou un menu, il reste affiché juste le temps de sélectionner un élément, une commande, ou une date en l'occurence.

    Au fait, pourquoi tu n'utilises pas tout simplement un DateTimePicker ?

  10. #10
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Par défaut
    Oui il n'a pas vocation à rester affiché c'est vrai.

    Pour le datetimepicker j'avais essayé de l'utilisé mais je ne sais plus pourquoi je l'avais gardé je crois qu'il ne faisait pas tout ce que je voulais, je vais essayé ce soir.

    Par contre dans une appli web que j'avais vu ou les composants ressemblaient aux miens, lors du clique sur le bouton pour afficher le calendrier le ne cachait que le textbox qui était en dessous et pas le libellé, alors que les deux faisaient partis du même contrôle.

    Es-ce parce que c'est du web qu'il se comportait comme ça?

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    ah ok, je crois que j'ai enfin compris ton histoire... a mon avis la seule solution simple est de séparer le label du reste du contrôle

  12. #12
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    213
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 213
    Par défaut
    Ouai c'est ce que je pense aussi mais ça ne m'arrange pas car il n'y aurais que dans ce cas (ou un contrôle est sous un ctrlCalend) ou il faudrait que sépare le label et la textbox.

    Sinon l'autre moyen c'est que mon contrôle CltrCalend n'intègre pas de label comme ça à l'agrandissement de celui-ci ça ne cacherait que la textbox en dessous et pas le label

Discussions similaires

  1. [XL-2003] Ligne qui se cache entre 2 autres
    Par raffa dans le forum Excel
    Réponses: 3
    Dernier message: 09/05/2010, 11h54
  2. div qui cache une autre div problème de mise en page
    Par info007 dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 20/11/2008, 18h38
  3. Réponses: 2
    Dernier message: 23/10/2008, 15h03
  4. Réponses: 3
    Dernier message: 01/06/2008, 17h05
  5. [bioinfo] fonction qui renvoie chaîne à autre fonction
    Par perlaud dans le forum Bioinformatique
    Réponses: 11
    Dernier message: 16/07/2004, 15h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo