Lucyberad
Messages postés414Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention26 juillet 2007
-
15 mars 2005 à 17:46
cs_liquide
Messages postés1016Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention24 juin 2008
-
18 mars 2005 à 12:53
Salu A tous!
g un blem avec mes forms car voila j'ai 3 form:
et je veut en gros que:
a 1ere form devienne caché et lance la 2eme
la 2eme devient inactive (enabled = false) et lance la 3eme form
la 3eme permet dès qu'elle devient cachée, de reactiver la 2eme
j'ai donc contruit ce code:
sur la form1:
Dim form2 As New form2
form2.show
Me.hide
sur la form2:
Dim form3 As New form3
form3.show
Me.enabled = false
sur la form3:
Dim form2 as form2
form2.enabled = True
Me.hide
lorsque je mets ce code, visual me dit qu'il y as une erreur que le
code sur la form3 me mettant que il faut que je mette un "new" pour
declarer la form2 a la form3
donc des que je remplace:
Dim form2 As form2
par
Dim form2 As New form2
il me mets un autres message d'erreur du type: systemoverflowexecption
en tooltip il mets: "make sure you do not have an infinate loop or infinate recursion"
voila,voila je sais pas trop comment resoudre ce bordel. pour toute reponse: d'avance merci !
@+
L U C Y I3 E R @ D
A voir également:
Reference to a non-shared member requires an object reference
cs_liquide
Messages postés1016Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention24 juin 2008 15 mars 2005 à 19:54
bin dsl mais tu as deja posté et j'en reviens au meme constat:
sur la form1:
Dim form2 As New form2
form2.show
Me.hide
sur la form2:
Dim form3 As New form3
form3.show
Me.enabled = false
sur la form3:
Dim form2 as new form2
form2.enabled = True
Me.hide
--->
sur la form1:
Dim form2 As New form2
sur la form3:
Dim form2 as new form2
--------------->>>>> Form2 existe deja tu l'as crée dans la "sur la form1" alors pk faire de nouveau un "new" dans le "sur la form3", ne peux tu pas directement declarer le "form2.enabled = true" ?
Lucyberad
Messages postés414Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention26 juillet 20073 15 mars 2005 à 21:33
euh chuis dsl liquide mais je me suis trompe j'ai mis que ca fonctionnait car j'ai en fait mis form2.enabled = true sur la form2
en fait j'ai fais comme tu m'as dit en ne mettant pas de declartion sur
la form3 et il me mets form2.enabled en souligné bleu en mettant comme
tooltip:
reference to a non shared member requires an object reference.
il veut pas me reconnaitre form2 car il n'est pas déclaré
cs_liquide
Messages postés1016Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention24 juin 2008 15 mars 2005 à 23:12
j'ai juste une idée qui pourrait te simplifié la tache, je lache le code
********** dans un module
Module Module1
Public F1
As
New Form1
Public F2
As
New Form2
Public
Function ActivedForm(
ByVal F
As
Object,
ByVal Enabled
As
Boolean,
ByVal Visible
As
Boolean,
ByVal BtoFront
As
Boolean)
As
Boolean
Dim Nf
As Form
If
TypeOf F
Is Form
Then
Nf = CType (F, Form)
With Nf
.Enabled = Enabled
.Visible = Visible
If BtoFront =
True
Then .BringToFront()
Else .SendToBack()
End
With
return true
End
If
End
Function
End Module
********pour la form
Private Sub Test1_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load
cs_liquide
Messages postés1016Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention24 juin 2008 15 mars 2005 à 23:46
salut, bin tu utilise la meme procedure que pour ajouter une form, mais tu selectionnes un module et dedans tu colles ce que je t'ai donné, c'est tout (vire juste l'entete et la fin)
Lucyberad
Messages postés414Date d'inscriptionmercredi 16 juin 2004StatutMembreDernière intervention26 juillet 20073 17 mars 2005 à 14:03
g reussi!
bon j'ai pas trouvé de tuto pour les modules mais apres plusieurs essai
j'ai trouvé (restifi moi si je me trompe) qyue ca permettait de faire
en sorte que du code soit a accesible a tous le mionde quand il est mis
dedans
donc j'ai fais comme ca:
j'ai declaré mes 3 form dans le module et j'ai fais des sub (encore un truc que je vien d'apprendre tout seul, je l'utilisait avant mais c'etait a chaque fois generé par visual ^^) :
public sub form2enabled()
form2.enabled = true
end sub
sur la form3 y'as pu qu'as mettre ce code:
call form2enabled()
et ca marche, j'ai donc juste declaré 1
seule fois mes forms: dans le module (meme si g pas tout compris c pas
grave j'y arrive comme ca et ca viendra avec l'experience), merci a toi
liquide j'aivraiment apris plein de truc grace a toa ^^
cs_liquide
Messages postés1016Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention24 juin 2008 17 mars 2005 à 18:35
voila, tu as creer des procédures, mais ce qui est mieux de faire c'est qu'une seule procedure que tu appelles de n'importe ou, ou tu lui dit qu'elle form (f1,f2,3) tu veux gerer et de quelle maniere elle doit faire (enabled, visible, backcolor etc etc etc a volonté).
donc .... 1 seule procedure pour toute tes formes, gain de place et de programmation
je te l'avais mis en function au lieu de procédure sub pour qu'il active le retour "true" , bien que la il etait mal programmé :D.
puis essais de passer les dim F1 as new form1 en public F1 as new form1
cs_liquide
Messages postés1016Date d'inscriptionsamedi 22 mars 2003StatutMembreDernière intervention24 juin 2008 18 mars 2005 à 12:53
public fait que tu le rend public lol, le dim n'est valide que pour la class ou la procedure auquel il associé, quand il est definit sur la class, il est valide aussi pour les procedures internes a la class