Sélection des numéros de Départements et Nouvelle Région Fr

Soyez le premier à donner votre avis sur cette source.

Vue 1 767 fois - Téléchargée 202 fois

Description

Winform VB.NET

Source avec Fichier xml avec les Régions et Départements français (Depuis 2016).
Carte des Départements
Selection par Région et/ou Département.

Retour des Numéros des Départements en Chaine de Charatactères séparés par ';'

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Whismeril
Messages postés
13634
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 août 2019
298 -
Bonsoir

sur le fond,
il y a du VB6 partout, pense à désactiver la référence à VisualBasic dans tout projet VB.Net


Mettre des accents, des cédilles etc... dans les nom de variables, de fichiers ou de projets est très très déconseillé.
J'ai dézippé ton projet sur un mac et tout était cassé.
Sur un windows pas configuré en français, ça se dézippe, mais Visual Studio ne sait pas compiler, etc...


sur le code
tu as écrit une classe, donc un objet, et tu t'en sers comme une structure.

Le principe de l'objet est qu'il gère tout un "thème".
Dans ton cas, un DefDepartement doit savoir comme il s'affiche et la form ne servant que d'interface graphique.
Il doit aussi savoir quelle est son image, etc...

De plus, tu as stocké tes données dans une liste, et tu ne te sers pas de ces capacités de recherches pour extraire les régions.
(Soit dit en passant, il aurait pu être plus logique de faire une liste de Régions, qui contient une Liste de Départements)

Enfin, tu ne profites pas du binding.

Pour te montrer, j'ai traité l'affichage dans la classe, et j'ai fait une requête pour extraire les régions et j'ai bindé les 2 listes aux contrôles adéquats

La classe devient
    Public Class DefDepartement
        Property Region As String = String.Empty
        Property Numero As String = String.Empty
        Property Departement As String = String.Empty

        ''' <summary>
        ''' Je change le ToString par défaut, par le texte qui me convient, ça fait 3 lignes de codes en plus sans les commentaires
        ''' </summary>
        ''' <returns></returns>
        Public Overrides Function ToString() As String
            Return String.Format("({0}) {1}", Numero.PadLeft(2, "0"), Departement)
        End Function
    End Class


et le load de la form devient
    Private Sub FrmDepartements_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'Clear Picture of department
        PictureBox_Dep.Image = Nothing

        'load Xml of list of department
        ModRegion.Load(Path.Combine(Application.StartupPath))

        'affichages des données en 3 lignes seulement
        CheckedListBox_Dep.DataSource = Departments
        Dim regions As List(Of String) = Departments.Select(Function(d) d.Region).ToList()
        CheckedListBox_Region.DataSource = regions
    End Sub


Et je n'ai pas regardé le reste du code, mais il est évident que tu ne profites pas de la programmation objet ni des outils puissants offerts par la framework.
Ton code ressemble à s'y méprendre à du VB6.
Rlooping
Messages postés
13
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
2 février 2018
-
Merci pour ces commentaires. Effectivement, je viens du VB6.
Je suis peut être un peu vieux pour la programmation Objet !!! :-)

Pour la Liste des Régions, elles sont en doublon dans la CheckedListBox_Region !!
Whismeril
Messages postés
13634
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 août 2019
298 > Rlooping
Messages postés
13
Date d'inscription
lundi 28 novembre 2005
Statut
Membre
Dernière intervention
2 février 2018
-
Ça n’est pas uniquement une question d’âge. Il y a des membres ici, qui affichent un âge respectable et s’y sont mis.
Et puis le concept date du début des années 60.
J’ai écrit des articles pour ceux qui passent de vb6 à vb.net
http://codes-sources.commentcamarche.net/faq/11151-pourquoi-mon-code-vb6-vba-ne-marche-pas-en-vb-net
Et plus en profondeur
http://codes-sources.commentcamarche.net/faq/11239-la-programmation-objet-appliquee-a-net-par-l-exemple-partie-1-sur-3
Whismeril
Messages postés
13634
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 août 2019
298 > Whismeril
Messages postés
13634
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
21 août 2019
-
J'ai fait une petite boulette dans le code que je t'ai proposé, il y a des doublons dans les régions.
Voici le code corrigé, tant que j'y étais j'ai trié par ordre alphabétique.
        Dim regions As List(Of String) = Departments.Select(Function(d) d.Region).Distinct().OrderBy(Function(r) r).ToList()

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.