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 :

[vb.net][combobox] récupérer la valeur avant changement


Sujet :

Windows Forms

  1. #21
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 100
    Points
    100
    Par défaut
    Moi les variables static ne me choquent pas et puis ca marche bien comme ca.
    Et bien :
    1- C'est toi qui a dit que plusieurs combobox étaient concernées, donc une variable statique ne marchera pas : c'est la dernière sélection toutes combobox confondues qui sera sauvegardée, et non celle de la combobox qui t'intéresse.
    2- De toute façon, par principe, on n'utilise les variables statiques que pour enregistrer les données... statiques.
    Ici, c'est clairement une données liée à une instance.

    Le choix est valide, mais c'est en fait un item 'more...' qui permet a l'utilisateur de charger des entrées suplémentaires dans la combo, de ce fait je n'ai pas à charger tout en meme temps.
    Hmm... Je crois voir ce que tu cherches à faire...
    Dans ce cas, ne serait-il pas plus simple, au moment du chargement d'un bloc de données dans ta combox (ou lors de la sélection d'un item autre que "more..."), d'affecter comme valeur à ton item "more..." le critère (clef, numéro d'index, etc...) dont tu auras besoin pour charger le bloc de données suivant ?

  2. #22
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Salut,

    1- C'est toi qui a dit que plusieurs combobox étaient concernées, donc une variable statique ne marchera pas : c'est la dernière sélection toutes combobox confondues qui sera sauvegardée, et non celle de la combobox qui t'intéresse.
    Si ca fonctionne tres bien avec une variable statique par combo. Exemple:

    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
    Private Sub cboRootTable_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cboRootTable.SelectedIndexChanged
            Static myvalue As String
            If Not cboRootTable.SelectedItem Is Nothing Then
                If cboRootTable.SelectedItem.ToString = "More..." Then
                    ChangeRootTblMode(False)
                    cboRootTable.SelectedItem = myvalue
                ElseIf cboRootTable.SelectedItem.ToString = "refresh" Then
                    ChangeRootTblMode(True)
                    cboRootTable.SelectedItem = myvalue
                ElseIf cboRootTable.SelectedItem.ToString = "" Then
                    cboRootTable.SelectedItem = myvalue
                Else
                    UpdateRootViews()
                    myvalue = cboRootTable.SelectedItem.ToString
                End If
            End If
        End Sub

    Dans ce cas, ne serait-il pas plus simple, au moment du chargement d'un bloc de données dans ta combox (ou lors de la sélection d'un item autre que "more..."), d'affecter comme valeur à ton item "more..." le critère (clef, numéro d'index, etc...) dont tu auras besoin pour charger le bloc de données suivant ?
    Je me base sur la string "more..." pour charger un autre bloc de données. Mais je ne veux pas que "more..." apparaisse dans la combo comme étant l'élément selectionné. voir code ci-dessus.

    Merci
    @+

  3. #23
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 80
    Points : 83
    Points
    83
    Par défaut
    Bonjour.

    Je ne suis pas sûre d'avoir tout compris ce que tu voulais
    mais pour tester selon l'ancienne valeur sélectionnée, je le fais dans l'événement Validating :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    combo.text (ou selectedValue) contient l'ancienne valeur
    ctype(sender, comboBox).text (ou selectedValue) contient la nouvelle.
    @+

  4. #24
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    tiens je pensais que Validating n'était appellé que lorsque le control perd le focus... je vais essayer
    merci

  5. #25
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 80
    Points : 83
    Points
    83
    Par défaut
    Exact ! Tu as raison.
    Mais les tests sur le combo et le sender sont aussi valables dans le cas d'un SelectedIndexChanged.

  6. #26
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Mon évenement Validating n'est pas déclenché lorsque je change ma selection dans ma combobox. Es tu sur que c'est le bon évenement?

  7. #27
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 80
    Points : 83
    Points
    83
    Par défaut
    Oui je suis sûre que ce n'est pas le bon (voir post juste avant)

  8. #28
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    alors là il faut que tu m'expliques comment ta combo et le sender peuvent ne pas avoir la meme valeur dans SelectedIndexChanged, étant donné que le sender et ta combo ne font qu'un!
    J'ai testé et ils ont la meme valeur.
    :

  9. #29
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 80
    Points : 83
    Points
    83
    Par défaut
    Je devrais prendre rtt aujourd'hui....

    Effectivement, ce test ne marche qu'avec le validating.
    Mes tests sur le SelectedIndexChanged sont faits avec le currencyManager ou avec la valeur du Datagrid (qd la combo est dans un datagrid) ki n'a pas changée dans ce cas.

    dsl

  10. #30
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Salut graphicsxp
    apparemment ce que tu cherchais au départ est possible avec la nouvelle Framework 2.0 par la méthode native du Combobox : OnTextUpdate
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  11. #31
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    ha bien.
    mais j'utilise toujours vs2003. on doit obligatoirement passer à vs2005 pour changer de framework? question idiote peut etre.... je sais pas...

  12. #32
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par graphicsxp
    ha bien.
    mais j'utilise toujours vs2003. on doit obligatoirement passer à vs2005 pour changer de framework? ...
    Oui
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  13. #33
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    dans ce cas.... je m'en tiens a ma variable static et je clique résolu.

  14. #34
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 100
    Points
    100
    Par défaut
    Si ca fonctionne tres bien avec une variable statique par combo. Exemple:
    J'avais oublié que tu étais en VB, alors que je raisonne C#.
    "static" en C# est l'équivalent "Shared" en VB, alors que "Static" en VB est quelque-chose de différent.
    D'où la confusion. Désolé.

    Je me base sur la string "more..." pour charger un autre bloc de données. Mais je ne veux pas que "more..." apparaisse dans la combo comme étant l'élément selectionné. voir code ci-dessus.
    Tu pourrais aussi par défaut sélectionner le premier item du nouveau bloc de données chargées, ce qui éviterait à l'utilisateur de devoir scroller vers le bas pour examiner les nouvelles valeurs...

    apparemment ce que tu cherchais au départ est possible avec la nouvelle Framework 2.0 par la méthode native du Combobox : OnTextUpdate
    Bien vu.

  15. #35
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    Tu pourrais aussi par défaut sélectionner le premier item du nouveau bloc de données chargées, ce qui éviterait à l'utilisateur de devoir scroller vers le bas pour examiner les nouvelles valeurs...

    Tu veux faire mon projet a ma place ? LOL
    non je ne veux pas faire ca, je garde la selection d'avant de cliquer sur le more...

    J'avais oublié que tu étais en VB, alors que je raisonne C#.
    "static" en C# est l'équivalent "Shared" en VB, alors que "Static" en VB est quelque-chose de différent.
    D'où la confusion. Désolé.
    Shared et Static sont deux mots clé différent, donc non je ne pense pas que le static du C# soit différent du VB.net

  16. #36
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 100
    Points
    100
    Par défaut
    Tu veux faire mon projet a ma place ? LOL
    C'était juste une suggestion.
    Mais si les suggestions ne sont pas les bienvenues, no problemo, je

    Shared et Static sont deux mots clé différent, donc non je ne pense pas que le static du C# soit différent du VB.net
    Si, le "Static" du VB et le "static" du C# sont deux choses complètement différentes.
    Et bien que "Shared" ne soit pas le strict équivalent de "static", c'est ce qui s'en rapproche le plus.

  17. #37
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Points : 1 022
    Points
    1 022
    Par défaut
    ok (et je plaisantais )

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. récupérer une valeur avant de la modifier avec RegExp
    Par yodark dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 14/02/2011, 16h51
  2. Réponses: 5
    Dernier message: 14/06/2008, 13h30
  3. [VB.net][OleDB]récupérer la valeur d'un parametre de sortie
    Par glanumf dans le forum Accès aux données
    Réponses: 4
    Dernier message: 17/10/2006, 17h09
  4. Réponses: 2
    Dernier message: 15/06/2005, 15h57
  5. [VB.NET] [ODBC] Récupérer des valeurs avec requête ODBC?
    Par Pleymo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/03/2005, 16h38

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