Soucis de listing de forms chargée depuis une form spécifique

Résolu
9112 Messages postés 24 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 8 septembre 2009 - 8 sept. 2009 à 00:24
9112 Messages postés 24 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 8 septembre 2009 - 8 sept. 2009 à 22:53
Bon je le dit. Voila mon programme ouvre plusieurs nouvelles fenêtres a partir d'une fenêtre nommée frmConvs. Mais j'aimerais lister TOUTE les fenêtres ayant été chargée depuis frmConvs. Parce que si j'utilise la collection de toute les forms, je n'ai pas accès aux contrôles spécifique de frmConvs (en VB.NET)

Je ne sais pas si c'est la bonne catégorie du forum. Donc si il y a le moindre soucis, merci de me le signaler


Metton Production 2009

12 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 sept. 2009 à 22:29
.... pas de NEW = > pas d'instance

le message est pourtant clair :
La référence d'objet n'est pas définie à une instance d'un objet
Private Sub OuvrirUneDiscussionAvecLeContactSélectionnéToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OuvrirUneDiscussionAvecLeContactSélectionnéToolStripMenuItem.Click
  total  = total + 1
  Discussions(total) = NEW frmConvs 
  'tu devrais néanmoins ici avoir un repère, une propriété pour savoir que PIERRE n'est pas PAUL
  Discussions(total).Show()
End Sub 
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 sept. 2009 à 22:32
ps : il manque aussi un petit redim preserve Discussions(total)
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 sept. 2009 à 08:50
salut,

TOUTE les fenêtres ayant été chargée depuis frmConvs


tu veux dire celles ouvertes après click ou code depuis frmConvs je suppose, mais elle ouvre n'importe quelle form de ton projet?
ou que des f as new frmConvs ?

sans le premier cas tu peux identifier par le type ou même le nom (propriété)

dans le 2e cas (et le premier aussi d'ailleurs), tu peux créer une collection (ou List <of form>) que tu mets à jour à chaque ouverture et fermeture d'une form

détaille plus précisément le contexte stp

++
[hr]
0
9112 Messages postés 24 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 8 septembre 2009
8 sept. 2009 à 19:56
Bonsoir.
frmConvs est une form possèdant des contrôles pour chatter au fait (puisque c'est un client utilisant BITLBEE pour msn).
Chaques form = un contact

Voila.
J'ai a la base cela :

Dim frm As Form

For Each frm In My.Application.OpenForms
'...
Next

Cependant même si j'arrive a trouver la form cible correspondant au Xeme contact, je ne puis accéder aux contrôles sur cette form.

En attendant je vais essayer la méthode de "liste de collection" ^^

Metton Production 2007
0

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

Posez votre question
9112 Messages postés 24 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 8 septembre 2009
8 sept. 2009 à 20:11
Désolé pour le double post mais Heu au fait je sais même pas créer une nouvelle fenêtre de ce type...
Tain en VB6 c'était moins chiant a faire


Metton Production 2009
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 sept. 2009 à 20:52
vb6 :
dim f as new formX

vb.net :
dim f as formX = new formX


tu n'as répondu qu'à moitié ; si tu as une form par contact, c'est qu'elle suit le modèle de ta formX (ou formconvers)

ton test In My.Application.OpenForms ne me parle absolument pas


FORMS (que tu n'utilises pas) est déjà une collection, qui te renvoie toutes les forms chargées
mais comme tu ne vérifies déjà pas le type (TYPEOF ou DIRECTCAST) vers frmconvers, tu ne fais pas de test....


nous ne sommes ni devant ton écran, ni devant ton projet

en sollicitant notre aide , donner le STRICT minimum d'infos (sans doute pensant "aller plus vite pour avoir la réponse plus vite") ne peut que tous nous retarder


[quote =PCPT]détaille plus précisément le contexte stp /quote
0
9112 Messages postés 24 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 8 septembre 2009
8 sept. 2009 à 21:00
In My.Application.OpenForms donne la liste de toute les forms ouvertes.
Après le soucis c'est que je suis débutant en VB.NET. Je ne sais même pas ce qu'est le TYPEOF ni le DIRECTCAST.

Donc voila quoi... Je n'arrive pas a savoir quelles infos ajouter.

En gros un contact X m'envois un message. Je veux savoir si la fenêtre correspondant a X est ouverte ou pas. Dans le cas ou elle ne serait pas ouverte, je veux ouvrir une nouvelle form basée sur frmConvers. Voila (je vais tester ton forms après quoi).
Une fois la nouvelle form chargée (si besoin), j'aimerais accéder au contrôle nommé txt qui est dedans et qui contient les messages recus puis ajouter son message dedans. Voila.



Metton Production 2007
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 sept. 2009 à 21:22
de ce que tu me dis, la connexion est établie depuis une autre form
donc à chaque message arrivant, tu vas faire :

si NOT instance_form_unique_X => create instance_form_unique_X
instance_form_unique_X.ZONE = TEXTE_RECU

dans la logique d'un tchat çà marche pas comme çà du tout!!!

CONNEXION (liste_contacts) =>
création instance_form_unique_X
bascule REQUEST_ID => instance_form_unique_X.SOCKET

et le reste se fait sur instance_form_unique_X (qui est donc forcément ouverte)
le socket reçoit le premier message et tous les autres =>
ME.ZONE = TEXTE_RECU


ps : [F1] depuis l'IDE pour les mots clés indiqués

bon courage
0
9112 Messages postés 24 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 8 septembre 2009
8 sept. 2009 à 22:13
Je suis désolé mais en fait je n'y arrive pas du tout. Je suis complètement paumé :(

Déja j'ai essayé plein de trucs pour ouvrir une nouvelle fenêtre mais PAS MOYEN de le faire.

J'en ai marre :(


Metton Production 2007
0
9112 Messages postés 24 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 8 septembre 2009
8 sept. 2009 à 22:25
J'ai oublié de mettre le code :
Voici la zone de déclaration :
[i]Public Class frmBack
Dim total As Long
Dim Discussions() As frmConvs
'Puis le reste c'est la dessous ^^/i

Voici la zone qui est censé ouvrir la form
[i]Private Sub OuvrirUneDiscussionAvecLeContactSélectionnéToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OuvrirUneDiscussionAvecLeContactSélectionnéToolStripMenuItem.Click
total = total + 1
Discussions(total).Show()
End Sub/i

Puis pour finir voici l'erreur retournée :(
[b]"L'exception d'objet n'est pas définie NullReferenceException n'a pas été gérée"
"La référence d'objet n'est pas définie à une instance d'un objet."/b

Metton Production 2007
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
8 sept. 2009 à 22:25
après presque 24h il serait peut-être temps de nous montrer un peu de code non ?

si tu en as trop marre => laisse tomber 1 ou 2 jours, çà fait parfois beaucoup de bien de "casser le projet", on y voit beaucoup plus clair ensuite

si c'est juste "faussement marre" (=> tests à l'aveuglette sans même savoir ce que çà devrait faire, tout à fait possible en juste 50 minutes...), montre-nous le code entre l'arrivée du message et l'affichage du message, en détaillant TOUT très précisément

mets-nous aussi les tests que tu as fait stp

PS : dim contacts as new list(of formconvers)
0
9112 Messages postés 24 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 8 septembre 2009
8 sept. 2009 à 22:53
Bon ben merci beaucoup ^^ Après avoir testé des trucs par ci par la ca a fonctionné.
Merci d'avoir pris ton temps puis je suis désolé mais tout le code c'est impossible il est trop long :(
0
Rejoignez-nous