Form dans une class [Résolu]

Signaler
Messages postés
453
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
11 janvier 2013
-
Messages postés
453
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
11 janvier 2013
-
bonjour,

j'ai créer une bibliothèque de class et maintenant je viens de crées une form1 comment puis-je appeler la form1 depuis la class?

j'ai essayer Form1.ActiveForm.ShowDialog() la il y a une erreur il va directement de le catch.

et lorsque je la creer en code type:
  Private Sub frmEnregistrement()
        Dim frm As New Windows.Forms.Form
        Dim btnReg As New Windows.Forms.Button

        frm.Height = 300
        frm.Width = 200
        frm.ShowDialog()
    End Sub

il sais l'ouvrir le problème c'est que je sais pas dire que le btnreg dois etre dans la frm ex: frm.btnReg. ????

comment faire pour soit appel une form visuelle dans la class ou attribué un objet a une form .
merci

8 réponses

Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
37
Non, une form n'est pas accessible depuis une instance de classe.

Admettons que j'ai la classe suivante :

Public Class MaClasse
    Private Sub ShowForm
        Form1.Show' <= Form1 Ne sera pas disponnible
    En Sub   
End Class


Pourquoi ? Simplement car MaClasse est une instance appelé au sein du projet et n'a pas connaissance des autres classes instanciés. Il faudra alors faire :

Public Class MaClasse
    Private Sub ShowForm(f As Form)
        f.Show
    En Sub   
End Class


En passant la form en argument à la procédure, cela fonctionne. Plus qu'à instancier la classe et à appeler la procédure :

Dim C As New MaClass
C.ShowForm(Form2)

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
37
En fait je capte pas tout, explique moi ce que tu cherches à faire, directement, je pense que ça ira plus vite ^^


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
453
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
11 janvier 2013
10
désolé pour le language mal formulé je ne mettais pas relu.
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut
je crois que si tu écris
Form1.ActiveForm.ShowDialog
tu reçois l'erreur 'Form that already be visible cannot be displayed as dialog box ?
Messages postés
453
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
11 janvier 2013
10
bonsoir ,
j'ai du faire une erreur dans la class car il me dit
"argument non spécifié pour les paramêtres 'f' Private Sub ShowForm(f As Form1)
Dim C As New ProcKey
C.ShowForm(Form1)


vu que je suis déja dans la class en question il repasse dans
  Public Sub New()
        Me.New(GenerateMac())
        Me.GenerateControleLicence()
    End Sub
en gros il tourne en rond.

Il y a peut être quelque chose que j'ai mal fait?
Et j'ai fini d'intaller Microsoft SQL serveur!!

merci en core Mayzz
Messages postés
540
Date d'inscription
mardi 4 août 2009
Statut
Membre
Dernière intervention
1 février 2013
2
"argument non spécifié pour les paramêtres 'f' Private Sub ShowForm(f As Form1)


tu t'es trompé dans les paramètres,ce n'est pas
f as Form1
mais plutôt
f as Form


Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...
Visual Basic .Net is the best and vb6.0
Messages postés
453
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
11 janvier 2013
10
merci a vous 2 j'ai reussi grace au exemple que tu ma fournis plus haut.
en fesant tout simplement :
Dim frmEnregistrement As New Form2
                    frmEnregistrement.Show()



dans un projet de bibliothèque de class après avoir créer la class ,j'ai créer une form2 avec des boutons je voulais a un endroit particulier appeler la form2 dans la class.

Voila merci et désolé car sur le coup ce n'était pas très clair.

Merci a toi aussi NSUADI
Messages postés
453
Date d'inscription
dimanche 20 août 2006
Statut
Membre
Dernière intervention
11 janvier 2013
10
des fois les solutions les plus bêtes sont sous nos yeux....