Un datagridview est utilisé plutôt que de sous-classer l'affichage, ce qui permet - d'avoir une liste de largeur différente de celle de la colonne;
- de personnaliser l'apparence de la liste en utilisant les propriétés du datagridview;
- de réutiliser la liste à d'autres endroits d'un formulaire ou sur plusieurs formulaires de l'application.
- de modifier la valeur par défaut lors de l'exécution.
Le demo utilise la liste des langues des cultures de Windows, mais on peut facilement adapter à des bases de données.
Le processus se fait en 4 étapes.
1- création de la table contenant les éléments de la liste déroulant.
2- création du datagridview qui servira à l'affichage de la table.
3- création de la classe gestionnaire de l'affichage de la liste.
4- création de la colonne du datagridview de la saisie des données utilisant le datagridview de la liste déroulante.
11 janv. 2011 à 09:51
11 janv. 2011 à 09:44
Ceci dit, si on veut optimiser la vitesse, je ne suis pas sûr que les langages à base de VB soient les plus adaptés...
10 janv. 2011 à 19:52
Tant qu'un goto ne cause pas de problème de compréhension et est plus efficace, je m'y autorise et ne prévois pas devenir un puriste du non goto.
Merci, pour tes remarques.
10 janv. 2011 à 12:44
La ComboBox multicolonnes m'intéresse beaucoup ! J'en avais déjà 1, mais la tienne est bien plus jolie.
J'espère que je ne vais juste pas trop galérer pour choper la combobox sachant qu'à l'intérieur d'une datagridview, ca ne m'intéresse pas :o
J'ai regardé juste vite fait, comme j'aime pas vraiment les goto (ca me rappelle la prog sur les 1ères calculatrices programmables), perso, je ne fais pas ainsi :
'Vérification si la sélection a vraiment changée
If mDataGridView.CurrentCell.Value Is Nothing Then GoTo Step2
If mDataGridView.CurrentCell.Value.Equals(mListGridView.Rows(e.RowIndex).Cells(mValueMember).Value) Then Exit Sub
Step2:
mais comme ceci :
If mDataGridView.CurrentCell.Value IsNot Nothing AndAlso mDataGridView.CurrentCell.Value.Equals(mListGridView.Rows(e.RowIndex).Cells(mValueMember).Value) Then Exit Sub
Merci en tout cas !
Stéphane
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.