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 :

[Windows Form]Label et combobox


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Homme Profil pro
    Formateur Android, Kotlin Java
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur Android, Kotlin Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut [Windows Form]Label et combobox
    Bonjour, le texte est long mais c'est pour expliqué au mieu.

    j'ai un texte de taille variable avec des trou et un ensemble de mot pour remplir le trou.

    Exemple :
    Le petit .... dans le village.

    A - chien
    B - grand
    C - elle
    D - village

    Voilà maintenant mon problème c'est que je veux la liste des propositions dans une comboBox et a la place des ....
    Sauf qu'il peux y avoir plusieurs trou dans un texte.

    Problème :
    Dans quoi mettre le texte? (Label, textBox...)
    Comment connaitre la taille/position du label pour pouvoir mettre la combobox à coté/en dessous.

    Même
    debutTexte
    comboBox
    suiteTexte
    combobox
    fintext

    me conviendrait (c'est à dire mettre les comboBox a la ligne pas dans le texte.)

    Ce que j'ai pensée
    Un mot = un label
    On cree une List de label et on les ajoute un par un au panel, et au lieu des ... on ajoute une combobox.
    Mais cela ne marche pas car cela ajoute les labels les un sur les autre
    Surement un probleme de layout a definir.

    Environnement
    Je travaille sur Visual studio 2008.

    Merci de m'aider si possible
    Anthony

  2. #2
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    492
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 492
    Par défaut
    pour la taille du label :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int taille=label1.Text.Length();
    pour la position tu peux utiliser substring(débutdetachaine,taillevoulu)

  3. #3
    Membre confirmé
    Homme Profil pro
    Formateur Android, Kotlin Java
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur Android, Kotlin Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut
    Merci pour ta réponse mais
    cela ne me donne en aucun cas la taille d'un label.
    car iiiii et _____ ne prenne pas la même place.

    Comment pourrai je connaitre le nombre de ligne qu'il y a dans un label?

  4. #4
    Membre très actif Avatar de subzero01
    Inscrit en
    Décembre 2007
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Décembre 2007
    Messages : 281
    Par défaut
    le mieux je pense c'est de créer tant de labels que les fragments qui contistituent ta phrase, ainsi tu places les labels une pres d'une autre, separées biensur par les combobox.

  5. #5
    Membre confirmé
    Homme Profil pro
    Formateur Android, Kotlin Java
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur Android, Kotlin Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut
    c'est ce que j'ai voulu faire le problème est que quand je crée un label, il est par défaut de taille (100,100).
    Et comment connaitre la taille de celui ci de telle manière qu'il encadre le texte qu'il contient (qu'il n'y est pas de blanc entre la fin du texte et la fin du label.)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Label l = new Label();
    Label m = new Label();
    l.text = "iiiii";
    m.text = "_____";
    comment faire pour que l'affichage produise
    iiiii _____ iiiii

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    Pour la taille de ton label tu peux utiliser ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaTaille = MonLabel.CreateGraphics.MeasureString(MonLabel.text,MonLabel.Font)
    A tester, je suis plus très sur de la syntaxe ...

  7. #7
    Membre confirmé
    Homme Profil pro
    Formateur Android, Kotlin Java
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur Android, Kotlin Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut
    Il n'y a pas de CreateGraphics en winform.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    Je développe en VB mais je serais surpris que la classe Label n'est pas une méthode CreateGraphics en C# ! ...

  9. #9
    Membre très actif Avatar de TheCaribouX
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 255
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.label1.CreateGraphics().MeasureString(MonLabel.text, MonLabel.Font);
    ça existe (juste les paranthèses à ajouter)

    [Edit] Code généré sous vvisual studio, createGraphics a été proposé dans le "menu déroulant"

  10. #10
    Membre confirmé
    Homme Profil pro
    Formateur Android, Kotlin Java
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur Android, Kotlin Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut
    Effectivement la méthode existe avec les parenthèses, elle n'est pas connu de visual studio.
    Donc je vais testé et je vous direz ensuite.
    Merci pour l'info

  11. #11
    Membre confirmé
    Homme Profil pro
    Formateur Android, Kotlin Java
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur Android, Kotlin Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut
    Donc voila le code que j'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    //les positions
                int x = 5;
                int y = 5;
     
                Label l = new Label();
                l.Text = "Booooby";
                l.BackColor = Color.Yellow;
                l.Location = new Point(x, y);
                panel.Controls.Add(l);
                x += (int) l.CreateGraphics().MeasureString(l.Text,l.Font).Width;
     
                Label m = new Label();
                m.Text = "bobbbby";
                m.BackColor = Color.Green;
                m.Location = new Point(x, y);
                panel.Controls.Add(m);
    qui selon ce que je veux faire devrait les mettre l'un a coté de l'autre.
    Mais il me fait une exception sur la ligne CreateGraphics.
    Il y a des trucs a importer normalement ?

    An unhandled exception of type 'System.NotSupportedException' occurred in System.Drawing.dll

    Additional information: NotSupportedException
    Je rappel que je fais du c# pour windows mobile

    edit :
    D'ailleurs cela ne marche pas en rajoutant
    Graphics g = l.CreateGraphics();//.MeasureString(l.Text,l.Font).Width;
    par contre si je met tout en commentaire cela marche, mais l'un sur l'autre.

  12. #12
    Membre confirmé
    Homme Profil pro
    Formateur Android, Kotlin Java
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur Android, Kotlin Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut
    Citation Envoyé par TheCaribouX Voir le message
    Code généré sous vvisual studio, createGraphics a été proposé dans le "menu déroulant"
    Alors effectivement si je crée un projet C# il est proposé par Visual Studio.
    Cependant mon projet est "smartDevice"

  13. #13
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    Le problème est surement du a la syntaxe C# et du coup je ne peut pas t'être d'un grand secours.

    La methode MeasureString de la classe Graphics ne te donne pas la taille précise du lettrage mais la taille d'un label qui contiendrait cette chaine s'il était en autosize.
    Donc a priori pile ce qu'il te faut ...
    Au pire, tu peut donc mettre tes Labels en AutoSize et récupérer leur taille, mais tu n'auras l'info qu'une fois ces derniers affichés ...

    A ta place je creuserais plutôt du coté de MeasureString.

  14. #14
    Membre très actif Avatar de TheCaribouX
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 255
    Par défaut
    Citation Envoyé par Anthone Voir le message
    Alors effectivement si je crée un projet C# il est proposé par Visual Studio.
    Cependant mon projet est "smartDevice"
    Okay, savais pas

  15. #15
    Membre confirmé
    Homme Profil pro
    Formateur Android, Kotlin Java
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur Android, Kotlin Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut
    Effectivement c'est exactement ce qu'il me faudrait.
    Mais measureString et autoSize ne sont pas accessible!!!

    J'ai trouvé une autre solution bcp plus moche qui contourne le problème mais bon je préfèrerai pouvoir mettre les combobox dans le texte

    En tout cas merci pour vos propositions

  16. #16
    Membre confirmé
    Homme Profil pro
    Formateur Android, Kotlin Java
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur Android, Kotlin Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut
    Au passage, est ce que c'est possible dans un textBox d'écrire dans plusieurs couleurs?

  17. #17
    Membre très actif Avatar de TheCaribouX
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 255
    Par défaut
    je crois qu'il faut passer par les rich_textbox mais t'auras plus d'infos en passant par un nouveau thread.

  18. #18
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 240
    Par défaut
    Une autre solution est d'utiliser un FlowLayoutPanel qui place tes controles à la queue leuleu ...
    Je ne sais pas si c'est valide pour ton environnement particulier.

  19. #19
    Membre confirmé
    Homme Profil pro
    Formateur Android, Kotlin Java
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur Android, Kotlin Java
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Par défaut
    Je n'ai plus le temps de tester (vu que l'on a 2 semaines pour faire le projet.)
    Mais merci de votre aide.

Discussions similaires

  1. [c#/windows forms] Inverser un label comme dans une miroire
    Par tony1988 dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 23/05/2013, 13h58
  2. Imbriquer combobox sur windows form
    Par Guillaume45 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/03/2012, 10h31
  3. [C#] - Windows form - combobox et dataSource
    Par omedo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/04/2011, 01h17
  4. [C#] windows form et ComboBox
    Par telynor dans le forum Windows Forms
    Réponses: 9
    Dernier message: 12/11/2004, 19h17
  5. [VB.NET] windows form traits
    Par DG JohnJohn dans le forum Windows Forms
    Réponses: 3
    Dernier message: 08/06/2004, 16h05

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