ComboBox lié à 1 DataSource

Le
Stéphane
Bonjour,

Je suis en VB .net 2003.

Je souhaite afficher 1 ComboBox listant le champ "Code" et après avoir
choisi 1 occurrence, conserver la valeur "Numéro Auto".
Ces 2 champs sont dans 1 table d'1 dataset que je remplis via 1 fichier xml.

Pour l'instant, tout correspond à mon besoin, mais j'ai 1 petit soucis :
le contrôle affiche obligatoirement une valeur,
or, j'aimerai que la combobox reste vide tant que je n'ai encore rien
sélectionné dans la liste.

J'ai essayé selectedtext et selectedvalue avec comme valeur nothing, "", 0
ou -1 ainsi que text="" mais rien n'y fait.

Existe-t-il 1 solution à mon problème ?

Par avance, merci.
Stéphane

PS : Ci-dessous un extrait du code :

With Me.ComboBox1

.DataSource = Me.DataTable1
.DisplayMember = "Code"
.ValueMember = "Numéro Auto"

End With
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fred
Le #17488511
"Stéphane" news:%
Bonjour,

Je suis en VB .net 2003.

Je souhaite afficher 1 ComboBox listant le champ "Code" et après avoir
choisi 1 occurrence, conserver la valeur "Numéro Auto".
Ces 2 champs sont dans 1 table d'1 dataset que je remplis via 1
fichier xml.

Pour l'instant, tout correspond à mon besoin, mais j'ai 1 petit soucis
:
le contrôle affiche obligatoirement une valeur,
or, j'aimerai que la combobox reste vide tant que je n'ai encore rien
sélectionné dans la liste.

J'ai essayé selectedtext et selectedvalue avec comme valeur nothing,
"", 0 ou -1 ainsi que text="" mais rien n'y fait.

Existe-t-il 1 solution à mon problème ?




De mémoire.
Regarde par là : FormattingEnabled

--
Fred

Stéphane
Le #17509561
Merci Fred,

Cette solution correspondrait exactement à ce que je recherche !

Le hic...

C'est que cette propriété n'existe seulement que depuis le framework 2.0

Et je suis sous VB .Net 2003 qui n'accepte que le framework 1.x

Existe-t-il 1 autre solution ? ou 1 autre façon de faire ?

Stéphane :

PS :
http://msdn.microsoft.com/fr-fr/library/system.windows.forms.listcontrol.formattingenabled(VS.80).aspx


ListControl.FormattingEnabled, propriété
Remarque : cette propriété est nouvelle dans le .NET Framework version 2.0.

Obtient ou définit une valeur indiquant si la mise en forme s'applique à la
propriété DisplayMember du ListControl.



Valeur de la propriété
true si la mise en forme de la propriété DisplayMember est activée ; sinon,
false. La valeur par défaut est false.
Notes
L'affectation de true à la propriété FormattingEnabled provoque le
déclenchement de l'événement Format pour chaque membre visible de
ListControl.

SelectedIndex, SelectedValue et FormattingEnabled sont associés comme suit :

a.. Si FormattingEnabled a la valeur false, SelectedIndex n'a pas la
valeur -1 lorsqueSelectedValue est vide.

b.. Si FormattingEnabled a la valeur true, SelectedIndex a la valeur -1
lorsqueSelectedValue est vide.




"Fred"
"Stéphane" news:%
Bonjour,

Je suis en VB .net 2003.

Je souhaite afficher 1 ComboBox listant le champ "Code" et après avoir
choisi 1 occurrence, conserver la valeur "Numéro Auto".
Ces 2 champs sont dans 1 table d'1 dataset que je remplis via 1 fichier
xml.

Pour l'instant, tout correspond à mon besoin, mais j'ai 1 petit soucis :
le contrôle affiche obligatoirement une valeur,
or, j'aimerai que la combobox reste vide tant que je n'ai encore rien
sélectionné dans la liste.

J'ai essayé selectedtext et selectedvalue avec comme valeur nothing, "",
0 ou -1 ainsi que text="" mais rien n'y fait.

Existe-t-il 1 solution à mon problème ?




De mémoire.
Regarde par là : FormattingEnabled

--
Fred




Fred
Le #17524121
in news:%, Stéphane wrote :

Merci Fred,

Cette solution correspondrait exactement à ce que je recherche !

Le hic...

C'est que cette propriété n'existe seulement que depuis le framework
2.0
Et je suis sous VB .Net 2003 qui n'accepte que le framework 1.x

Existe-t-il 1 autre solution ? ou 1 autre façon de faire ?



Je ne peux hélas pas tester ce à quoi je pense mais j'irais voir du côté
de la classe Binding pour gérer les évènements Parse et Format.
J'ai vu que tu comptais passer sous vb 2008 Express donc tu n'as
peut-être plus le problème.
NB : avec la version Express, il manque le modèle de projet Setup bien
utile pour générer un .msi d'installation.


--
Fred

Le #17529851
Bonsoir Fred,

En effet, je suis passé en VB Express 2008 (après formatage car mon PC
refusait l'installation).

Pas de problème pour les setup, je les fais moi-même, comme ca, je contrôle
tout !

Je te tiens au courant pour tester la solution FormattingEnabled que tu
m'avais donné.

Stéphane.


"Fred"
in news:%, Stéphane wrote :

Merci Fred,

Cette solution correspondrait exactement à ce que je recherche !

Le hic...

C'est que cette propriété n'existe seulement que depuis le framework
2.0
Et je suis sous VB .Net 2003 qui n'accepte que le framework 1.x

Existe-t-il 1 autre solution ? ou 1 autre façon de faire ?



Je ne peux hélas pas tester ce à quoi je pense mais j'irais voir du côté
de la classe Binding pour gérer les évènements Parse et Format.
J'ai vu que tu comptais passer sous vb 2008 Express donc tu n'as peut-être
plus le problème.
NB : avec la version Express, il manque le modèle de projet Setup bien
utile pour générer un .msi d'installation.


--
Fred



Le #17602501
Cette méthode fonctionne parfaitement ! Encore merci !

Je fais donc ainsi :
(en appelant remplit_combobox pour chaque combobox à remplir)
Sub remplit_combobox(ByVal ComboBox As ComboBox, ByVal DataSource As
DataTable, ByVal DisplayMember As String, ByVal ValueMember As String, ByVal
DropDownWidth As Integer)

With ComboBox

.DataSource = DataSource

.DrawMode = DrawMode.Normal

.DisplayMember = DisplayMember

.ValueMember = ValueMember

.DropDownWidth = DropDownWidth

.FormattingEnabled = True

.SelectedValue = -1

End With

End Sub




<Stéphane> a écrit dans le message de news:

Bonsoir Fred,

En effet, je suis passé en VB Express 2008 (après formatage car mon PC
refusait l'installation).

Pas de problème pour les setup, je les fais moi-même, comme ca, je
contrôle tout !

Je te tiens au courant pour tester la solution FormattingEnabled que tu
m'avais donné.

Stéphane.


"Fred"
in news:%, Stéphane wrote :

Merci Fred,

Cette solution correspondrait exactement à ce que je recherche !

Le hic...

C'est que cette propriété n'existe seulement que depuis le framework
2.0
Et je suis sous VB .Net 2003 qui n'accepte que le framework 1.x

Existe-t-il 1 autre solution ? ou 1 autre façon de faire ?



Je ne peux hélas pas tester ce à quoi je pense mais j'irais voir du côté
de la classe Binding pour gérer les évènements Parse et Format.
J'ai vu que tu comptais passer sous vb 2008 Express donc tu n'as
peut-être plus le problème.
NB : avec la version Express, il manque le modèle de projet Setup bien
utile pour générer un .msi d'installation.


--
Fred







Publicité
Poster une réponse
Anonyme