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

VB 6 et antérieur Discussion :

Utilisation du Enable avec des combobox ou des listbox


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 7
    Points
    7
    Par défaut Utilisation du Enable avec des combobox ou des listbox
    Bonjour à tous,

    J'utilise une combobox dans laquelle je souhaiterais pouvoir griser à la demande certaines lignes (Enable=false) et en laisser d'autres normales (Enable=true).

    Est-ce possible ?

    Merci d'avance.


  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Pas a ma connaissance
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  3. #3
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    suggestion "de passage"

    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
    Const interdits_indexlist1 = "/2/4/"
     
    Private Sub Form_Load()
      For i = 0 To 10
      List1.AddItem i
      Next
    End Sub
     
    Private Sub List1_Click()
      If InStr(interdits_indexlist1, "/" & Trim(List1.ListIndex) & "/") > 0 Then
        If List1.Selected(List1.ListIndex) = True Then
           List1.Selected(List1.ListIndex) = False
        End If
      End If
    End Sub
    A essayer ...

  4. #4
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Bonjour jmf

    A noter que la multiselection n'existe pas pour les combobox
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Merci pour le code.
    Ca fonctionne très bien, mais peut-on faire l'équivalent avec une combobox ?

    Merci d'avance

  6. #6
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Tu ne me parais pas réfléchir beaucoup, legos
    essaye celà

    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
    Const interdits_indexcombo1 = "/2/4/"
    Private Sub Form_Load()
      For i = 0 To 10
      Combo1.AddItem i
      Next
    End Sub
     
    Private Sub combo1_Click()
      If InStr(interdits_indexcombo1, "/" & Trim(Combo1.ListIndex) & "/") > 0 Then
         Combo1.ListIndex = 0
         Combo1.Text = ""
         msgbox "développer c'est aussi réfléchir un peu !"
         exit sub
      End If
    End Sub
    et essaye de sélectionner le 2 ou le 4 ...

    Il faut que tu apprennes à te "creuser un peu les méninges "...

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Puisque je m'adresse au grand maître de VB, j'ose reposer la question initiale à laquelle, je crois (malgrès ma faible intelligence) tu n'as pas répondu :

    "je souhaiterais pouvoir griser à la demande certaines lignes (Enable=false) et en laisser d'autres normales (Enable=true)"

    Merci et ... sans rancune !

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    je souhaiterais pouvoir griser à la demande certaines lignes (Enable=false) et en laisser d'autres normales (Enable=true)"
    Ceci n'est à ma connaissance pas possible.

    Il est par contre toujours possible de créer son propre composant (ocx). C'est là un bon exercice, à mon sens.

    Commence donc à t'y mettre (et n'oublie surtout pas de proposer ton ocx résultat de tes pensées). Merci par avance de ce qu'il te sera possible de dépenser comme énergie dans ce sens (ici, vois-tu, on donne une forme à ses idées ... on ne se contente pas de celles des autres...).
    A bientôt, donc.

  9. #9
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    on peut faire une pseudo-combobox en "déroulant" (en augmentant le height) une liste placcée sous un textbox. ça simplifie la création du contrôle.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  10. #10
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Exact, mais ca n'aidera pas pour griser des items .
    Je pense qu'il faudra tout gérer a partir d'un picture box, du click sur le picture box pour retrouver l'item (on pourait mettre le picture.scalemode = 4 pour faciliter le calcul de l'item)
    Le composant devrait fournir une propriété (collection) List, une propriété (collection) Selected et une propriété (collection)EnabledItems
    Il faudra penser à gérer les scrollbars et penser qu'on ne pourra pas afficher toutes les lignes en même etmps sur le picture box dont la hauteur maxi ne sera jamais suffisante pour plus de quelques dixaines de lignes.
    Enfin Bref, un trés tres gros boulot.
    A mon humble avis, il serait aussi simple de retirer les elements qui devraient être grisé de la liste du combo, inutile d'afficher des items qui ne pourront jamais être sélectionnés
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  11. #11
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    A mon humble avis, il serait aussi simple de retirer les elements qui devraient être grisé de la liste du combo, inutile d'afficher des items qui ne pourront jamais être sélectionnés
    Salut Delbeke,
    Evidemment

  12. #12
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Citation Envoyé par legos
    Merci pour le code.
    Ca fonctionne très bien, mais peut-on faire l'équivalent avec une combobox ?

    Merci d'avance
    comme il voulais l'équivalent en combobox, je me suis dis que ça sufisait.

    sinon, il y as une methode un peu lourde mais qui peu marcher: positionner des images semi-transparante sur toute la combodéroulée (une par élément de la liste) (encore que je sait pas si même avec le Zorder on peu passer au dessus d'un contrôle qui à le focus) et les mettre visible ou pas en fonction du scroll. (mais comment obtenir sa valeur... )

    bonne chance
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  13. #13
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    Citation Envoyé par jmfmarques
    Salut Delbeke,
    Evidemment
    j'y pense, on peut peut-être se débrouiller avec une imagecombo non ?
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Bonjour à tous,

    Je vois que ma question suscite bien des réflexions et que la réponse n'existe probablement pas sur étagère.

    Pourquoi ne pas éliminer les élément que je souhaite griser : tout simplement pour montrer à l'utilisateur du programme les points qui n'ont pas été calculés et faire ressortir de façon immédiate le degré d'avancement des calculs.

    Merci encore

  15. #15
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bonjour Legos,

    Ne dis pas :
    Merci encore
    retrousse-toi les manches et fais un ocx, puis fais-en profiter les autres...
    En d'autres termes : tu es le seul jusqu'à présent à déplorer l'absence, "sur l'étagère" d'un pot de confiture.... A toi donc de la faire, cette confiture-là..
    Merci à l'avance pour tous ceux qui auraient envie de la goûter...

  16. #16
    Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 077
    Points : 17 172
    Points
    17 172
    Par défaut
    Pourquoi pas
    Faire reference au composant :
    Microsoft Hierarchical FlexGrid Control 6.0 (MSHFLXGD.OCX)

    Sur un Form
    mettre un Label et le composant MSHFlexGrid sur une Form
    mettre MSHFlexGrid1 Lignes fixes = 0
    mettre MSHFlexGrid1 colonnes fixes = 0

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Option Explicit
    Dim T As Integer
    
    Private Sub Form_Load()
    MSHFlexGrid1.Width = 1600
    MSHFlexGrid1.ColWidth(0) = 1275
    MSHFlexGrid1.Rows = 25
    MSHFlexGrid1.Col = 0
    For T = 0 To MSHFlexGrid1.Rows - 1
     MSHFlexGrid1.Row = T
     If CInt(T / 2) <> Abs(T / 2) Then
      MSHFlexGrid1.CellBackColor = &HC0C0C0    'gris
      MSHFlexGrid1.CellForeColor = &HFFFFFF    'blanc
      MSHFlexGrid1.TextMatrix(T, 0) = "grisée"
      Else
      MSHFlexGrid1.CellBackColor = &HFFFFFF    'blanc 
      MSHFlexGrid1.CellForeColor = &H0&  'noir
      MSHFlexGrid1.TextMatrix(T, 0) = "normal"
      End If
     Next T
    End Sub
    
    Private Sub MSHFlexGrid1_RowColChange()
    If MSHFlexGrid1.CellBackColor = &HC0C0C0 Then    'gris
     Label1 = "ne rien faire" ' donc equivalant à Enabled=False
     Else
     Label1 = "là, je fais un truc" ' donc equivalant à Enabled=True
    End If
    End Sub
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Balises[C]...[/C] code intégré dans une phrase.
    Balises[C=NomDuLangage]...[/C] code intégré dans une phrase quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.
    👉 → → Ma page perso sur DVP ← ← 👈

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Bonsoir,

    Merci pour l'idée. Elle répond en grande partie au besoin si le "look" n'est pas tout à fait celui d'une combobox.

    Je vais creuser un peu cet aspect et chercher si l'on peut un peu améliorer la ressemblance.

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/07/2011, 09h49
  2. Réponses: 9
    Dernier message: 27/03/2011, 00h42
  3. Réponses: 7
    Dernier message: 04/09/2010, 12h51
  4. [E-03] vider des textbox et des combobox
    Par Mapokko dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/03/2009, 19h36
  5. [ADO.NET] Update avec une form et des combobox
    Par Herlece dans le forum Accès aux données
    Réponses: 4
    Dernier message: 12/12/2006, 02h12

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