Form dans une class

Résolu
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 - 10 août 2010 à 14:30
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 - 10 août 2010 à 20:07
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

Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
10 août 2010 à 15:39
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.
3
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
10 août 2010 à 19:45
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.
3
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 9
10 août 2010 à 14:32
désolé pour le language mal formulé je ne mettais pas relu.
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 août 2010 à 15:30
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 9
10 août 2010 à 19:37
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
0
NSUADI Messages postés 540 Date d'inscription mardi 4 août 2009 Statut Membre Dernière intervention 1 février 2013 2
10 août 2010 à 20:01
"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
0
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 9
10 août 2010 à 20:06
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
0
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 9
10 août 2010 à 20:07
des fois les solutions les plus bêtes sont sous nos yeux....
0
Rejoignez-nous