Membre non partagé entre 2 forms

Résolu
collargol123
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014
- 10 déc. 2013 à 02:45
collargol123
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014
- 10 déc. 2013 à 14:44
Bonjour,

J'ai 2 forms
Form1 ouverte
Form2 que j'ouvre à partir de la form1

Si de la form2 avec un bouton de commande, je souhaite ajouter un titre dans la combobox situé dans la form1, j'ai l'erreur suivante :

une reference à un membre non partagé requiert une référence objet

En VB6 il suffisait d'appeler les forms par leur nom
Pas possible en vb Net ?

Comment faites-vous ?

merci d'avance

10 réponses

cs_Le Pivert
Messages postés
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022
129
10 déc. 2013 à 09:52
Cela semble simple:

  Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Me.Text = "Mon titre"
End Sub

A moins que je n'ai pas compris la question
1
cs_Le Pivert
Messages postés
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022
129
10 déc. 2013 à 09:54
Ou cela:

 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Form1.Text = "Mon titre"
End Sub
0
collargol123
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

10 déc. 2013 à 02:48
voici le code que j'inscrit dans la form2

'on ajoute le titre dans la listbox de la form1
form1.listbox.Items.Add(titre)
form1.listbox.Refresh()
0
cs_ShayW
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
56
10 déc. 2013 à 09:50
Bonjour

Form2 que j'ouvre à partir de la form1

quelle code as tu écris ?
0
collargol123
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

10 déc. 2013 à 11:48
bonjour,
Suite à ma question, j'ai utilisé Ctype comme ci-dessous :

De la form1 :
Form2.ShowDialog(Me)

Puis dans la form2 :
'on ajoute le titre dans la listbox de form1
CType(Me.Owner, form1).listbox.Items.Add(date & " " & titre)
CType(Me.Owner, form1.Refresh()

'on registre le tire
SaveListBox2(CType(Me.Owner, form1).listbox, chemin & "titre.lst")

Mon probleme est que la form2 est modale et de ce fait je ne peut plus naviquer sur la form1.

Une solution pour y remédier ?
0

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

Posez votre question
cs_ShayW
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
56
10 déc. 2013 à 12:15
mets du clair dans la suite de tes messages
tu poses une question et ensuite tu poses une autre
ta question initiale était

une reference à un membre non partagé requiert une référence objet

maintenant tu demandes
Mon probleme est que la form2 est modale et de ce fait je ne peut plus naviquer sur la form1.

as tu résolu l'erreur n 1 ?
si form2 est modale tant que tu n'as fermé form2 tu n'as pas accès
à form1 c'est justement le modal est destiné pour cela
si non n'affiche pas form2 comme modal
0
NHenry
Messages postés
14944
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
161
10 déc. 2013 à 12:46
Je dirais, mets une variable globale dans un module, puis lors de l'ouverture de la Form1, tu renseignes cette variable, que tu lis dans ta Form2 .

Il y a plus propre (avec membres Shared), mais déjà essayes cela.
0
collargol123
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

10 déc. 2013 à 12:53
1/ avant d'utiliser CType, voici le code que j'utilisais :

De la form1 :
Form2.Show()

et dans la form2 :
form1.listbox.Items.Add(date & " " & titre)
form1.Refresh()

'on registre le tire
SaveListBox2(form1.listbox, chemin & "titre.lst")

C'est avec ce code que j'ai eu l'erreur
une reference à un membre non partagé requiert une référence objet

Il faut en effet que je puisse naviguer dans les 2 forms et certaines données de form1 sont liées à la form2
En VB6 tres facile

2/ Alors j'ai utilisé Ctype qui me permet d'ajouter le titre à la listbox de la form1 à partir de la form2.
MAIS comme c'est modale, je suis embêté car je n'ai plus accès à la form1 car la form2 est modale.

Donc pour résumé :
1/ il faut que je puisse avoir accès aux 2 forms à tout moment
2/ il faut que je puisse activé des controle ou modifier des propriétés de controle dans chaque form à partir de l'une ou l'autre
0
NHenry
Messages postés
14944
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
161
10 déc. 2013 à 13:29
As-tu essayé ma proposition ?
0
collargol123
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

10 déc. 2013 à 13:52
oui je viens d'essayé
Cela peut marcher mais ma form1 est déjà ouverte.
Et donc quand form.load ne se delcenche pas
0
collargol123
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

10 déc. 2013 à 13:53
form1.load ne se declenche pas puis que form1 est deja ouverte
0
NHenry
Messages postés
14944
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
161
10 déc. 2013 à 13:59
Au besoin, utilise le constructeur :
Public Sub New ()

'Ton assignation ici

'Le code déjà présent là
End Sub
0
cs_ShayW
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
56
10 déc. 2013 à 13:24
je n'ai aucun problème avec la 1er méthode

Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Form2.Show()
End Sub
End Class

Public Class Form2

Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Form1.ListBox1.Items.Add(Date.Now & " " & "blabla")
Form1.Refresh()

End Sub
End Class
0
collargol123
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

10 déc. 2013 à 13:53
cs_shaw

cela ne focntionne pas.
Je ne suis pas en VB6
0
cs_ShayW
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
56
10 déc. 2013 à 14:17
c'est du vb.net
0
collargol123
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
2 avril 2014

10 déc. 2013 à 14:44
alors pourquoi cela ne fonctionne pas chez moi
0