Bonjour à tous
Dans un formulaire il se trouve 2 combobox listant des catégories et des sous catégories (par datasource). Ces deux informations sont bien entendu lié (catégorie = table mère, sous catégories = table fille).
La valeur des combobox doit obligatoirement se trouver dans le datasource.
Au début j'ai utilisé le DropDownStyle = DropDownList qui remplit effectivement très bien ce rôle.
Néanmoins il y a une chose qui me déplait, plutôt à mes futurs utilisateur en fait, c'est que la recherche dans la ComboBox ne se fait que sur la première lettre, contrairement à la DataGridviewComboBoxCollum.
Si on tappe A puis L, au lieu d'arriver au valeur AL, on arrive à L
Bon pas grave, je décide de remettre le DropDownStyle à DropDown (La liste se position correctement en fonction de ce que tappe l'utilisateur) et décide de balancer un test dans l'évenement validating du comboBox pour vérifier que le texte se trouve bien dans le datasource du Combo.
Ca fonctionne nickel pour le comboBox mère (les catégories), mais pour le comboBox fille (sous catégories), j'ai le droit à la belle erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Private Sub ComboBox1_Validating(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles ComboBox1.Validating Try If Not sender.DataSource.Find("Nom", sender.text.Replace("'", "''")) > -1 Then MsgBox("La valeur sélectionné n'est pas correct." & vbNewLine & "Sélectionnez une valeur de la liste.", MsgBoxStyle.Exclamation, "Erreur Saisie") e.Cancel = True End If Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Critical, "Erreur") sender.Text = Nothing e.Cancel = True End Try End SubEn ajoute un .datasource (le datasource du datasource) le find fonctionne mais sur le binding source mère (dans la liste des catégories en fait).La propriété DataMember 'Nom' est introuvable dans le DataSource..
Avez vous une idée sur ce qui cloche?
P.S. Je suis ouvert à d'autre piste permettant de résoudre le problème initial bien entendu.
Partager