Sujet : [Vb.Net][1.1] Impossible d'effacer le texte d'une combo bindée

Bonjour,

Je suis très énervé...

La situation est la suivante : j'ai une fenêtre. Dans cette fenêtre j'ai une listBox. Cette listBox possède une DataSource et affiche les enregistrements d'une table (TableA). Cette table contient des champs qui sont les identifiants d'élements présents dans une autre table (TableB).

A droite de cette listBox, j'ai autant de comboBox que mes champs identifiants. Chaque comboBox est alimentée par la TableB. Chaque comboBox voit sa propriété DataBinding.SelectedValue branchée sur chaque champ identifiant auquel elle correspond de la TableA.

Le fonctionnement final souhaité est le suivant : je choisi un élément de ma listBox et les combo se mettent à jour en fonction de cette sélection.

Simple, non ?

Maintenant, mon problème : quand j'enregistre l'enregistrement courant, je veux pouvoir remettre mes champs identifiants à 0. Pour ce faire, je vérifie chaque comboBox : si combo.text vaut "", alors c'est que l'utilisateur veut effacer le lien, donc je remet mon id à 0.

Sauf que ! Prenons un cas pratique sur une combo. L'élément sélectionné est "toto"(c'est-à-dire que dans ma TableB, j'ai un champ défini à "toto"). Je sélectionne cette valeur dans le champ texte de ma combo avec ma souris (souffrante vue les misères que je lui inflige en raison de mon énervement ), j'appuie sur la touche Suppr. Le texte s'efface. J'appuie sur mon bouton Enregistrer et je passe en mode pas à pas.

J'arrive sur la ligne suivante :

If maCombo.Text <> "" Then .Item(K_CHAMP) = maCombo.SelectedValue Else .Item(K_CHAMP) = 0

(Je rappelle que j'ai effacé le texte de ma combo). A cet endroit, maCombo.Text vaut toujours "toto" !!

Que dois-je faire ? Comment savoir que j'ai effacé le texte de ma combo ?? Pourquoi .text vaut encore la précédente valeur alors que je l'ai effacée ??

Aidez-moi s'il-vous-plaît...je vais me tirer une balle bientôt...

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : [Vb.Net][1.1] Impossible d'effacer le texte d'une combo bindée

J'ai eu la réponse à ce problème : c'est un bogue du framework .Net 1.1

http://support.microsoft.com/kb/839616/

Solution : installer le Service Pack 1 du FW .Net 1.1

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : [Vb.Net][1.1] Impossible d'effacer le texte d'une combo bindée

Après installation et test : le problème persiste....Je confirme mon opinion de .Net : c'est de la grosse daube.

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : [Vb.Net][1.1] Impossible d'effacer le texte d'une combo bindée

Et pourquoi tu ne prends pas le 2 ? Elle ne date pas de 2 ans !!

.Net Framework v2

Edit : Samy en train de faire du .Net big_smile

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW

Re : [Vb.Net][1.1] Impossible d'effacer le texte d'une combo bindée

C'est assez ressemblant... big_smile big_smile big_smile Non, heureusement, il n'en est quand même pas au stade de ce psycopathe du clavier... wink

http://samray1024.free.fr/interface/Maleen.gif - Carpe Diem -

Re : [Vb.Net][1.1] Impossible d'effacer le texte d'une combo bindée

Je ne peux pas prendre le framework 2.0 car les librairies que j'utilise ne sont pas tout simplement pas compatibles avec lui.

Sinon, je ne sais pas si le gamin joue la comédie ou s'il est vraiment lui-même. Mais si c'est le cas (il est lui-même), faut qu'il se fasse soigner ! De toute urgence !! C'est un fou !! Je rassure tout le monde : il peut m'arriver de taper sur mon clavier ou ma souris, mais je n'en suis pas encore à ce niveau de folie ! wink loin de là....et heureusement ! big_smile

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : [Vb.Net][1.1] Impossible d'effacer le texte d'une combo bindée

Bien, je viens de refaire ma fenêtre, et j'ai enfin réussi à obtenir le résultat escompté !! Pas trop tôt !

Voici donc les conclusions que je tire de cette mésaventure :

- Premièrement, l'installation du service pack 1 pour le FW 1.1 est obligatoire pour pouvoir utiliser les comboBox (j'ai d'abord cru que cela n'avait rien fait, mais je viens de vérifier, mes combos fonctionnent maintenant correctement).

- Deuxièmement,  ce bogue des combos m'a bloqué pendant 3 semaines ; pendant lesquelles j'ai avancé le reste de mon application bien sûr ;-)...Mais il fallait bien que j'y revienne un jour !

- Ensuite, pour atteindre mon but, j'ai viré tous les OleDB.DataAdapter et tous les DataSet de la fenêtre. Ils me servaient à alimenter ma listBox et mes combos automatiquement, tous ces objets étant branchés entre eux selon les champs de liaisons de ma base de données. Exit tout ça !!

- J'ai finalement pris la solution "full mano" = j'ai tout fait à la main : utilisation de requêtes SQL et d'ArrayList pour remplir tout ce qui doit être rempli. Toutes les mises-à-jour des champs en fonction de l'enregistrement courant sont faites à la main. Je fais tout moi-même. Et ça marche mieux : mes combos ne se mettaient pas à jour correctement en automatique, je ne comprends toujours pas pourquoi.

- Et enfin, dernière conclusion, ma fenêtre se charge beaucoup plus rapidement ! En effet, avant elle mettait quelques secondes (~5-6 s...c'est long je vous assure) avant d'apparaître à l'écran...sur un Centrino 1,6 Ghz !!!!...qu'est-ce que cela aurait donné sur une vieille bécane ?? Je pense que tous les objets OleDb pompent à mort, et cela se ressent nettement sur la rapidité de l'appli. En utilisant de simples requêtes SQL exécutées juste quand il le faut, sans objet particulier, la différence est largement notable...Vive .Net.

Finalement, il m'a fallut 3h pour tout refaire à la mano. J'ai plus de lignes de code, mais ca fonctionne, et ca fonctionne rapidement.

Seul point noir en utilisant cette méthode : je n'ai plus la possibilité de faire des commit ou rollback sur mes données. Mais vu que je ne m'en servait pas, tant pis !

Bref, j'ai enfin réussi. Je vais peut être bientôt pouvoir livrer cette application !

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW