Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ComboBox lié à 1 DataSource

5 réponses
Avatar
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

5 réponses

Avatar
Fred
"Stéphane" a écrit dans le message de
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

Avatar
Stéphane
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" a écrit dans le message de news:

"Stéphane" a écrit dans le message de
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




Avatar
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

Avatar
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" a écrit dans le message de news:

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



Avatar
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" a écrit dans le message de news:

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