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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
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 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
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 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
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 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
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 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
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 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
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
Rejoignez-nous