Parametre d'une sub ou fonction

cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 14 mai 2010 à 11:44
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 16 mai 2010 à 10:30
Bonjour
Est il possible de faire passer comme parametre
le form à une methode d'une classe
par exemple j'ai un form nommé form1 avec
public sub getxyz()
j'ai une class nommée myclass avec
private myform as form
et une des methodes
public sub initclass(byref theform as form)
je sais qu'en vb6 on peut écrire dans ce cas
set myform = theform
et ensuite myform.getxyz (bien sur si on écrit
myform. une fenetre va s'ouvrir mais getxyz n'apparait pas)
et dans form1 écrire
dim class1 as myclass
set class1 = new myclass
class1.initclass(me)
j'ai essayé la meme chose en net ça ne marche pas!! une idée

Merci

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 mai 2010 à 13:04
Salut
As-tu ouvert l'aide ?
C'est pourtant expliqué dedans.

Exemple :
Définition de la classe :
Public Class clsMaClass

    Private frmForme As Form

    Public Property maForme() As Form
        Get
            maForme = frmForme
        End Get
        Set(ByVal FormName As Form)
            frmForme = FormName
        End Set
    End Property

    Public Property maCaption() As String
        Get
            maCaption = frmForme.Text & " Ajout pour test"
        End Get
        Set(ByVal value As String)
            frmForme.Text = value
        End Set
    End Property

End Class

Usage dans un bouton d'une forme standard :
        Dim xxx As clsMaClass

        xxx = New clsMaClass
        xxx.maForme = Me
        xxx.maCaption = "Coucou"
        MsgBox("Caption de la forme : """ & xxx.maCaption & """")

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
16 mai 2010 à 10:30
Bonjour Jack
Désolé la réponse ne me convient pas
j'ai besoin dans une des méthode de clsMaClass
avoir accès à une public sub déclaré dans mon
windows form
Je peux écrire comme ça
public Class Form1
 Private theclass As Class1
   Public Function Fxyx() As Size
        Return Me.Size
    End Function
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        theclass = New Class1
        theclass.init()
    End Sub
End Class
 


Class form
Public Class Class1
    Private x As Size
    Public Sub init()
        x = Form1.Fxyx()
    End Sub
End Class


comme j'ai écrit x = Form1.Fxyx() il n'y a pas
de problème mais si je veux utilisé class1 dans
une autre windows?form il faut modifié x Form1.Fxyx() par exemple x Form2.Fxyx()

J'espère que j'ai été plus clair
Bonne journée
0
Rejoignez-nous