Pb winform

Signaler
Messages postés
12
Date d'inscription
jeudi 6 mai 2004
Statut
Membre
Dernière intervention
30 mai 2005
-
Messages postés
12
Date d'inscription
jeudi 6 mai 2004
Statut
Membre
Dernière intervention
30 mai 2005
-
Salut, comment puis je gerer plusieurs winform
Je m'explique, j'ai une winform principale et qd je clique sur un bouton, j'ouvre une winform ou je dois ecrire des données.
Le probleme est que quand j'ouvre la 2ème, je revient direct dans la première et si je met une boucle infini, je ne peux plus rien fiare .
help me !!!
voici mon code:

form 1:
Private Function afficher_interface_modifier()
Dim form_id As form_identifiant = New form_identifiant

form_id.Show()
form_id.Activate()

Dim tmp As String
tmp = form_id.retourne_id()
System.Windows.Forms.MessageBox.Show(tmp)

End Function

Form 2:celle ou j'ecrit des donnees
Private Sub btn_entre_id_ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_entre_id_ok.Click
Dispose()
test_fin = -1
End Sub

Private Sub btn_entre_id_annuler_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_entre_id_annuler.Click
Dispose()
test_fin = -1
End Sub

Public Function fin_id()
Return (test_fin)
End Function

Public Function retourne_id()
Return txtb_id_entre.Text
End Function


Private Sub form_identifiant_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

3 réponses

Messages postés
50
Date d'inscription
lundi 7 avril 2003
Statut
Membre
Dernière intervention
21 août 2013

Bonjour,

Je me suis dévelloppé une fonction que j'ai nommé _FindForm (similaire à la méthode FindForm() >> Extrait le formulaire sur le lequel se trouve le contrôle.) qui me permet de savoir quelle est la dernière fenêtre du type voulu qui a été ouverte dans un environnement MDI, j'ai trois type de fenêtre différentes qui interagissent entre elles, bref.

Je sais pas si ça résoudra ton problème, mais sinon tu pourras peut être t'en inspiré:

Code en VB.Net
Public Function _FindForm(ByVal Rech As String) As Integer
Dim strRech As String = Rech
Dim frm As Form
Dim int, int1 As Integer
int1 = 0
' On cherche à trouver s'il y a un Formulaire enfant et prendre le dernier ouvert
For Each frm In MdiChildren
        If frm.Name = strRech Then
                 int = int1
        End If
        int1 = int1 + 1
        'Console.WriteLine("MdiChildren: " & frm.Name)
Next
Return int
End Function


Que j'appelle comme ça:

Dim X As FormY = CType(MdiChildren.GetValue(_FindForm("FormY")), FormY)


Regarde aussi la méthode du .Net Framework FindForm() >> Extrait le formulaire sur le lequel se trouve le contrôle, elle est très intéressante.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
Juste une remarque au niveau de ton code :

Public Function _FindForm(ByVal Rech As String) As Integer
Dim strRech As String = Rech
Dim frm As Form
Dim int, int1 As Integer
int1 = 0
' On cherche à trouver s'il y a un Formulaire enfant et prendre le dernier ouvert
For Each frm In MdiChildren
    If frm.Name = strRech Then
       Return int1    '"# Pas besoin de lister les forms suivantes !
    End If
int1 = int1 + 1
'Console.WriteLine("MdiChildren: " & frm.Name)
Next
Return -1
End Function
Messages postés
12
Date d'inscription
jeudi 6 mai 2004
Statut
Membre
Dernière intervention
30 mai 2005

Merci mais mon probleme est surtout de prendre la main et de la garder sur la forme qui s'ouvre.
En effet, j'arrive à l'ouvrir, l'afficher, ,la fermer mais pas à garder la mian dessus pour pouvoir ecrire, cliquer...
merci encore pour l'aide que vous apportez à tous les debutants et aux aurtes.