A l'aide!!!!!!!!!!!

lordm86 Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 2 août 2007 - 26 juin 2007 à 14:53
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011 - 29 juin 2007 à 20:44
Salut , je developpe à peine sous VB.Net.
  Je dois faire passer des informations d'un listBox à un autre . En fait quand je le fais sur le meme formulaire, cela fonctionne correctement . Le probleme c'est quand je veux le faire sur deux formulaires differents , sa ne marche pas .C'est à dire , sur mon Formulaire ayant les données, sur un evenement onclick , je veux que la ligne seclionnée aille s'ajouter dans la listebox du second formulaire .
   Sur un meme formulair, je fais :
   MalistBox1.Items.Add(MalistBox2.SelectedValue)

Mais en mettant MalistBox1 et MalistBox2 dans deux formulaires differents , sa ne marche pas .
 J'ai essayé un truc du genre :
  MonForm1.MalistBox1.Items.Add(......)
 Mais je n'ai aucun resultat......
  Si quelqu'un a des idées, qu'il me fasse signe ...svp.....

15 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 juin 2007 à 14:57
te faut modifier la portée de MaListBox1, pour qu'elle soit visible de l'exterieur, me semble

propriété Modofoer, je crois (je code pas en .Net)
0
lordm86 Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 2 août 2007
26 juin 2007 à 16:16
salut .. merci d'avoir repondu .. MAis dit moi c'est quoi ta propriete, car je la trouve nulle part.
 Merci...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 juin 2007 à 16:25
pas de propriété 'Modifier' (ou qq chose dans le genre)....

étrange, faut attendre la passage d'un codeur .Net :p
0
lordm86 Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 2 août 2007
26 juin 2007 à 16:31
salut .. merci d'avoir repondu .. MAis dit moi c'est quoi ta propriete, car je la trouve nulle part.
 Merci...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 juin 2007 à 01:37
salut,
ta 2e form est-elle ouverte en vbmodal?
si oui c'est normal...

<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
27 juin 2007 à 08:28
[auteurdetail.aspx?ID=2359 Renfield]

:


te faut modifier la portée de MaListBox1, pour qu'elle soit visible de l'exterieur, me semble
propriété Modofoer, je crois (je code pas en .Net) <
<===

ca ne marchera absolument pas en vb.net
le .net est un langage multithread, dans son cas le form1 sera sur 1 thread le form2 sur un autre thread et l'evenement du click bouton sera lui aussi sur un autre thread si jamais il tente de modifié un controle du form1 via le click du form2 il controle va verifier en premier quel est le "ThreadID" de son createur donc l'identifiant unique du thread qui a créé ce controle ici ca sera donc le ThreadID du form1
si jamais il differre tu vas avoir une erreur de securité pour avoir tenté une operation cross thread
Pour palier a ce pb de securité :
il faut créé
* une methode dans le form1 qui va se chargé de verifié cela par le code et actionner "le mecanisme" comme il faut.
* Declarer un delegué pointant sur la methode qui sera charger d'executer le code (celle ci dessus)
* le delegué qui sera chargé de "déléguer" le travail a faire au form1
pour justement que ca soit le bon thread qui execute le code

'Variable de classe du Form1
Friend Delegate Sub ItemAddHandler(sTexte As String)
Private dlgItemAdd As ItemAddHandler

Friend sub ItemAdd(sTexte As String)
    If MaListeBox.InvokeRequired Then 'True si le threadId du Thread courrant n'est pas le threadID du createur
       dlgItemAdd = New ItemAddHandler(Addressof ItemAdd) 'Auquel cas on instancié un delegué pointant sur la fonction en cour
       Me.Invoke(dlgItemAdd, new Object(){sTexte}) 'On invoke le delegué depuis l'instance de la classe en cour : Me (donc le threadID sera le bon)
    Else
       MaListeBox.Add(sTexte) 'Si le thread ID est le bon => on peux alors modifier le controle
    End If
End Sub

comment faire l'appel depuis le Form 2 :
<moninstancedeform1>.ItemAdd("toto")

TeBeCo
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 juin 2007 à 08:56
je ne met pas en doute ce que tu avances, je ne connais pas .Net

je trouve juste étrange que des threads se créent sans les demander explicitement...
pour moi, la situation me semble (me semblait ?) être la suivante :

Form2.ListBox1.Add ...

ne fonctionnera pas : Form2 est une classe, pas un objet...

Dim F2 as New Form2
F2.ListBox1.Add ...

devrait fonctionner, non
0
lordm86 Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 2 août 2007
27 juin 2007 à 13:42
Salut ....
   En fait ce qui se passe c'est que mon second formulaire ,( celui ou se trouve mes données à transmettre )  c'est une popup (bon peu importe ).
  Comme a dit Renfield, j'avais deja tenté de faire "" Dim F2 as New Form2
F2.ListBox1.Add ...""  MAis , sa ne fonctionnait pas . effectivement c'est la premiere idée qui m'est passée à l'esprit .. un peu comme dans VB.6.
0
lordm86 Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 2 août 2007
27 juin 2007 à 15:04
Ma seconde form est un formulaire normal il s'ouvre sous forme de popup.
0
lordm86 Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 2 août 2007
27 juin 2007 à 15:11
J'ai essayé ta methode, TeBECo , mais je n'ai toujours rien , meme pas un message d'erreur qui pourra me guider .. dans mes recherches......
0
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
27 juin 2007 à 18:29
le .net est par default multithread (MTA) tu peux le contraindre en STA (simple thread) mais effectivement sur les evenement il le fait implicimtement
[auteurdetail.aspx?ID=994112 lordm86] : j'ai du faire une erreur de syntaxe qq part regarde dans la doc le "invokerequired" normalement c'est qqchs d'assez similaire les reponse que je post avant 18h15 en general je les fait depuis mon boulot donc : pas de vs.net, pas de doc, juste ma ptite tete et la textebox du site mais cette methode je l'ai deja utilisée pas mal de fois ca tourne autour de ca

TeBeCo
0
lordm86 Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 2 août 2007
28 juin 2007 à 09:40
Merci encore pour ton aide.
  La methode existe bien , mais je crois que le problebe vient du faite que mes formulaires héritent de System.Web.UI.Page et de

SourceCode.K2SmartForms.K2SmartForm

( car j'utilise un workflow K2) pour le formulaire principale.
 De ce faite ; les methodes comme showDialog() qui me permettent d'ouvrire un formulaire ne passe pas . (logic .........) car elle n'existe pas dans dans systemeWindow.Forms.form...... 
  La  je suis bien perdu ................
0
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
28 juin 2007 à 18:05
ton pb etait en winform ou en webform ? les solutions dont e t'ai parlées sont pour le winform

TeBeCo
0
lordm86 Messages postés 13 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 2 août 2007
29 juin 2007 à 13:18
Slt ToBECo j'avais oublié de précisere que mon appl est pour le web , donc des Webform;
  En fiat j'ai compris pourquoi sa ne marchait pas . Et il y a autre chose que je me suis rendu compte , c'est que certaines  methode en winform ne sont pas applicaplicables dans ce cas ( logic car elle n'héritent pas de winForm mais de WebForm).
  Je voulais savoir si t'as pas des tuto qui traitent de mon pB mais dans le cas des Webform. CAr tout ce que je trouve comme Tuto ne parlent que de WinForm.
  Je te remercie. pour lr soutien...........
0
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
29 juin 2007 à 20:44
on peux valider en CrossPostBack en .net 2 donc le rechargement de la page se fait sur une autre webform a partir de la par une simple variable de session ou un event quelquonque tu pourra modifié les valeur comme tu l'entend je pense
lit la doc pour plus de detail sur les validation CrossPage

TeBeCo
0
Rejoignez-nous