Membre non partagé entre 2 forms [Résolu]

Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Dernière intervention
2 avril 2014
- - Dernière réponse : collargol123
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
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
Afficher la suite 

Votre réponse

10 réponses

Meilleure réponse
Messages postés
5607
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 décembre 2018
1
Merci
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

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

cs_Le Pivert
Messages postés
5607
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 décembre 2018
-
Ou cela:

 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Form1.Text = "Mon titre"
End Sub
Commenter la réponse de cs_Le Pivert
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Dernière intervention
2 avril 2014
0
Merci
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()
Commenter la réponse de collargol123
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
0
Merci
Bonjour

Form2 que j'ouvre à partir de la form1

quelle code as tu écris ?
Commenter la réponse de cs_ShayW
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Dernière intervention
2 avril 2014
0
Merci
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 ?
Commenter la réponse de collargol123
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
0
Merci
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
Commenter la réponse de cs_ShayW
Messages postés
14321
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
0
Merci
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.
Commenter la réponse de NHenry
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Dernière intervention
2 avril 2014
0
Merci
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
NHenry
Messages postés
14321
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
-
As-tu essayé ma proposition ?
collargol123
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Dernière intervention
2 avril 2014
-
oui je viens d'essayé
Cela peut marcher mais ma form1 est déjà ouverte.
Et donc quand form.load ne se delcenche pas
collargol123
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Dernière intervention
2 avril 2014
-
form1.load ne se declenche pas puis que form1 est deja ouverte
NHenry
Messages postés
14321
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
13 décembre 2018
-
Au besoin, utilise le constructeur :
Public Sub New ()

'Ton assignation ici

'Le code déjà présent là
End Sub
Commenter la réponse de collargol123
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
0
Merci
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
Commenter la réponse de cs_ShayW
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Dernière intervention
2 avril 2014
0
Merci
cs_shaw

cela ne focntionne pas.
Je ne suis pas en VB6
cs_ShayW
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
-
c'est du vb.net
Commenter la réponse de collargol123
Messages postés
86
Date d'inscription
jeudi 24 octobre 2013
Dernière intervention
2 avril 2014
0
Merci
alors pourquoi cela ne fonctionne pas chez moi
Commenter la réponse de collargol123

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.