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 :

Code postal et Ville


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 90
    Par défaut Code postal et Ville
    Salut,

    Je développe une petite application en VB.Net 2.0 qui doit permettre de saisir une adresse. J'ai récupéré la liste des Code postaux et des villes de France et je dois proposer une liste de ville qui correspondent à un début de code postal saisie.
    En gros, l'utilisateur saisie les 3 premiers caractère du code postal, puis on execute une requête pour récupérer les villes qui peuvent correspondre à la saisie. On affiche à l'utilisateur ces CP/Villes afin qu'ils puissent sélectionner celle qui correspond. Il faut que le CP et la ville soient dans deux champs différents.

    Si quelqu'un a des pistes, ca m'intéresse...

    Merci.

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Pose une question précise, sinon on ne peut rien te dire d'intéressant...
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 346
    Par défaut
    Ou tu veux peut-être qu'on te ponde un code tout fait, si tu veux je peux même venir chez toi le taper

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 90
    Par défaut
    Ok, alors voilà ma question :

    J'ai deux TextBox : Une pour le code postal (Qu'on nommera CodePostal) et une pour la ville (Qu'on nommera Ville). J'ai aussi une table contenant les codes postaux et les villes de France (On peut considérer que je peut obtenir un Dataset ou un Datareader ou autres sur cette table).

    Ce que j'aimerais : Lorsqu'un utilisateur a saisi les 3 premiers caractères dans CodePostal, il faut afficher la liste des villes de la table qui correspondent à CodePostal *. Ensuite, lorsque l'utilisateur sélectionne un élément de la liste, on attribue la valeur du code postal au TextBox CodePostal et la valeur de la ville à la TextBox Ville.

    Est-ce suffisant ou pas ? Le problème c'est que je suis ouvert à toutes propositions qui pourrait solutionner ce problème. Donc si à la place de TextBox il faut utiliser une Combo alors pas de soucis...

    Merci.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    361
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 361
    Par défaut
    ba tu met l'évènement sur le changement de texte...

  6. #6
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Tu pourrais plus simplement charger la liste complète des codes postaux - villes dans ton appli, dans un dictionnaire par exemple (dont la clé serait le code postal) et remplir automatiquement ton textbox ville lorsque ton combobox change de valeur.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 90
    Par défaut
    Salut,

    J'ai trouvé une solution à mon problème...
    En fait je ne charge pas la liste compléte à l'ouverture du formulaire car celà ralentit trop mon application. Par contre, je passe par l'auto completion de la TextBox du CodePostal que je redimensionne pour avoir un aspect plus sympa. Ensuite, lorsque ma TextBox CodePostal fait plus de 5 caractères (La taille maxi de mon TextBox CP est de 5 caractères) alors je split le contenu du TextBox pour renseigner mon CP et ma Ville. Ce qui donne :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
        Private Sub GereCpVille(ByVal txtCP As TextBox, ByVal txtVille As TextBox)
            If txtCP.Text.Replace(" ", "").Length = 3 AndAlso IsNumeric(txtCP.Text.Replace(" ", "")) Then
                Dim oReader As SqlClient.SqlDataReader
                Dim StrList As New AutoCompleteStringCollection
                Dim SelStart As Integer
     
                oReader = KappaDev.SQL.Data.getDataReaderExec("SELECT CP, VILLE FROM KD_Ville WHERE CP LIKE '" & txtCP.Text.Replace("'", "''") & "%' ORDER BY VILLE")
                While oReader.Read
                    StrList.Add(oReader("CP") & " " & oReader("Ville"))
                End While
                oReader.Close()
                oReader = Nothing
     
                If StrList.Count > 0 Then
                    SelStart = txtCP.SelectionStart
                    GereCpTaille(txtCP, txtVille, True)
     
                    txtCP.AutoCompleteCustomSource = StrList
                    txtCP.AutoCompleteSource = AutoCompleteSource.CustomSource
                    txtCP.AutoCompleteMode = AutoCompleteMode.Suggest
                    txtCP.SelectionStart = SelStart
                End If
            ElseIf txtCP.Text.Length > 5 Then
                txtVille.Text = txtCP.Text.Substring(6)
                txtCP.Text = txtCP.Text.Substring(0, 5)
                GereCpTaille(txtCP, txtVille, False)
            End If
        End Sub
     
        ' Fonction qui permet de redimensionner la taille du TextBox CodePostal
        Private Sub GereCpTaille(ByVal txtCP As TextBox, ByVal txtVille As TextBox, Optional ByVal Agrandit As Boolean = False)
            If Agrandit Then
                If (txtCP.Left + txtCP.Width) < (txtVille.Left + txtVille.Width) Then
                    txtCP.Width = txtCP.Width + txtVille.Width + 6
                End If
            Else
                If Not (txtCP.Left + txtCP.Width) < (txtVille.Left + txtVille.Width) Then
                    txtCP.Width = txtVille.Left - txtCP.Left - 6
                End If
            End If
        End Sub
    Il reste un truc qui ne fonctionne pas, c'est le DataBinding sur le TextBox de la Ville qui se réinitialise avec sa valeur d'origine lorsque je quitte ma TextBox CP. Voici la déclaration de ce DataBinding :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txtCptVille.DataBindings.Add("Text", Me.oClient, "Ville")
    Si vous savez comment je peux faire fonctionner mon DataBinding.

    Merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. recherche par code postal et ville
    Par ZEUSGR dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 30/11/2007, 11h46
  2. code postal et ville
    Par thieuma dans le forum IHM
    Réponses: 13
    Dernier message: 16/10/2007, 19h42
  3. automatiser code postal et ville
    Par bolderiz35 dans le forum Access
    Réponses: 2
    Dernier message: 22/09/2006, 13h22
  4. [PHP-JS] Code postal et ville
    Par lodan dans le forum Langage
    Réponses: 7
    Dernier message: 18/08/2006, 00h00
  5. novice: code postale et ville
    Par Chico_Latino dans le forum Access
    Réponses: 5
    Dernier message: 15/11/2005, 21h03

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