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

collargol123 86 Messages postés jeudi 24 octobre 2013Date d'inscription 2 avril 2014 Dernière intervention - 10 déc. 2013 à 02:45 - Dernière réponse : collargol123 86 Messages postés jeudi 24 octobre 2013Date d'inscription 2 avril 2014 Dernière intervention
- 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

16 réponses

Meilleure réponse
cs_Le Pivert 5442 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 16 octobre 2018 Dernière intervention - 10 déc. 2013 à 09:52
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

Merci cs_Le Pivert 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

cs_Le Pivert 5442 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 16 octobre 2018 Dernière intervention - 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
Commenter la réponse de cs_Le Pivert
collargol123 86 Messages postés jeudi 24 octobre 2013Date d'inscription 2 avril 2014 Dernière intervention - 10 déc. 2013 à 02:48
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
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 10 déc. 2013 à 09:50
0
Merci
Bonjour

Form2 que j'ouvre à partir de la form1

quelle code as tu écris ?
Commenter la réponse de cs_ShayW
collargol123 86 Messages postés jeudi 24 octobre 2013Date d'inscription 2 avril 2014 Dernière intervention - 10 déc. 2013 à 11:48
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
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 10 déc. 2013 à 12:15
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
NHenry 14273 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 16 octobre 2018 Dernière intervention - 10 déc. 2013 à 12:46
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
collargol123 86 Messages postés jeudi 24 octobre 2013Date d'inscription 2 avril 2014 Dernière intervention - 10 déc. 2013 à 12:53
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 14273 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 16 octobre 2018 Dernière intervention - 10 déc. 2013 à 13:29
As-tu essayé ma proposition ?
collargol123 86 Messages postés jeudi 24 octobre 2013Date d'inscription 2 avril 2014 Dernière intervention - 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
collargol123 86 Messages postés jeudi 24 octobre 2013Date d'inscription 2 avril 2014 Dernière intervention - 10 déc. 2013 à 13:53
form1.load ne se declenche pas puis que form1 est deja ouverte
NHenry 14273 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 16 octobre 2018 Dernière intervention - 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
Commenter la réponse de collargol123
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 10 déc. 2013 à 13:24
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
collargol123 86 Messages postés jeudi 24 octobre 2013Date d'inscription 2 avril 2014 Dernière intervention - 10 déc. 2013 à 13:53
0
Merci
cs_shaw

cela ne focntionne pas.
Je ne suis pas en VB6
cs_ShayW 3238 Messages postés jeudi 26 novembre 2009Date d'inscription 14 mars 2018 Dernière intervention - 10 déc. 2013 à 14:17
c'est du vb.net
Commenter la réponse de collargol123
collargol123 86 Messages postés jeudi 24 octobre 2013Date d'inscription 2 avril 2014 Dernière intervention - 10 déc. 2013 à 14:44
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.