IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.net] Donner le focus a un Form


Sujet :

Windows Forms

  1. #21
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Petit coup de main à Nostradamus qui a déjà bien mâché le boulot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    REM :FORM ConsulIECS1
    Public Delegate Sub FermetureFenetreEvent(ByVal sender As Object, ByVal e As System.EventArgs)
     
    Public Class ConsulIECS1
      Inherits System.Windows.Forms.Form
      Public Event FermetureFenetre As FermetureFenetreEvent
      Public Sub New()
        MyBase.New()
        '''etc...
      End Sub
      REM :Sur fermeture de ConsulIECS1 (par exemple)
      Private Sub ConsulIECS1_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
         If Not IsNothing(FermetureFenetre) Then RaiseEvent FermetureFenetre(Me,System.EventArgs.Empty);
      End sub
      '''etc...
    End Class
     
    REM :FORM ConsulIE1
    Public Class ConsulIE1
      Inherits System.Windows.Forms.Form
      Private WithEvents eventConsulIECS1 As ConsulIECS1
      Public Sub New()
        MyBase.New()
        '''etc...
      End Sub
     
      REM :Ouverture form ConsulIECS1
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
         Me.Enabled = False
         Dim f As New ConsulIECS1
         AddHandler f.FermetureFenetre, AddressOf fermerfenetre
         f.MdiParent = Me.ParentForm
         f.Show()
      End Sub
     
      REM :appel de l'évenement
      Private Sub fermerfenetre(ByVal sender,ByVal e As System.EventArgs) 
        Me.Focus()
        Me.Enabled = True
        Me.TextBox1.Focus()
      End Sub
    '''etc...
    End Class

  2. #22
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    Bonjour,
    merci beaucoup à Nostradamus et neguib!
    Je comprends le principe mais, j'ai encore quelques difficultées...

    Je n'ai sans doute pas été clair au début mais en fait consulIE1 est une instance de la Class ConsulIE et consulIECS1 est une instance de la Class ConsulIECS. Ci-dessous, je reprends le code de Nostradamus et neguib en tenant compte de cela et je renseigne mes "problèmes"...

    Form ConsulIECS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Public Delegate Sub FermetureFenetreEvent(ByVal sender As Object, ByVal e As System.EventArgs) 
     
    Public Class ConsulIECS 
      Inherits System.Windows.Forms.Form 
      Public Event FermetureFenetre As FermetureFenetreEvent 
      Public Sub New() 
        MyBase.New() 
        '''etc... 
      End Sub 
      REM :Sur fermeture de ConsulIECS (par exemple) 
      Private Sub ConsulIECS_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed 
         If Not IsNothing(FermetureFenetre) Then RaiseEvent FermetureFenetre(Me,System.EventArgs.Empty)
         End If 
      End sub 
      '''etc... 
    End Class
    ===> Not IsNothing(FermetureFenetre) entraine un message d'erreur de génération : 'Public Event FermetureFenetre(sender As Object, e As System.EventArgs)' est un événement. Il ne peut donc pas être appelé directement. Utilisez une instruction 'RaiseEvent' pour déclencher un événement.
    Je ne comprends pas non plus à quoi sert cette partie de code...

    Form ConsulIECS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Public Class ConsulIE 
      Inherits System.Windows.Forms.Form 
      Private WithEvents eventConsulIECS1 As ConsulIECS 
      Public Sub New() 
        MyBase.New() 
        '''etc... 
      End Sub 
     
      REM :Ouverture form ConsulIECS1 
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
         Me.Enabled = False 
         Dim ConsulIECS1 As New ConsulIECS 
         AddHandler ConsulIECS1.FermetureFenetre, AddressOf fermerfenetre 
        ConsulIECS1.MdiParent = Me.ParentForm 
         ConsulIECS1.Show() 
      End Sub 
     
      REM :appel de l'évenement 
      Private Sub fermerfenetre(ByVal sender,ByVal e As System.EventArgs) 
        Me.Focus() 
        Me.Enabled = True 
        Me.TextBox1.Focus() 
      End Sub 
    '''etc... 
    End Class
    ===>
    Je ne comprends pas l'instruction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private WithEvents eventConsulIECS1 As ConsulIECS
    A quoi sert l'instance eventConsulIECS1?... Où s'en sert-on par la suite?...

    concernant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub fermerfenetre(ByVal sender,ByVal e As System.EventArgs)
    Le paramètre e entraine l'erreur de génération : Si l'un des paramètres est explicitement typé, tous doivent l'être.

    Encore un "petit" coup de main, me ferait le plus grand bien. Merci.

  3. #23
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Suggestions

    Form ConsulIECS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Public Delegate Sub FermetureFenetreEvent(ByVal sender As Object) 
     
    Public Class ConsulIECS 
      Inherits System.Windows.Forms.Form 
      Public Event FermetureFenetre As FermetureFenetreEvent 
      Public Sub New() 
        MyBase.New() 
        '''etc... 
      End Sub 
      REM :Sur fermeture de ConsulIECS (par exemple) 
      Private Sub ConsulIECS_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed 
         RaiseEvent FermetureFenetre(Me)
      End sub 
      '''etc... 
    End Class
    Form ConsulIECS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Public Class ConsulIE 
      Inherits System.Windows.Forms.Form 
     
      Public Sub New() 
        MyBase.New() 
        '''etc... 
      End Sub 
     
      REM :Ouverture form ConsulIECS1 
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
         Me.Enabled = False 
         Dim ConsulIECS1 As New ConsulIECS 
         AddHandler ConsulIECS1.FermetureFenetre, AddressOf fermerfenetre 
        ConsulIECS1.MdiParent = Me.ParentForm 
         ConsulIECS1.Show() 
      End Sub 
     
      REM :appel de l'évenement 
      Private Sub fermerfenetre(ByVal sender) 
        Me.Focus() 
        Me.Enabled = True 
        Me.TextBox1.Focus() 
      End Sub 
    '''etc... 
    End Class

  4. #24
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    Cela fonctionne parfaitement!

    Merci beaucoup a tous!

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Donner le focus à une form
    Par Jean-Jacques Engels dans le forum Langage
    Réponses: 6
    Dernier message: 24/04/2011, 00h43
  2. rendre une form visible sans lui donner le focus
    Par kchrel dans le forum Access
    Réponses: 4
    Dernier message: 24/01/2006, 16h37
  3. [VB.NET] donner le focus a une page de tableau?
    Par leptityugi dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/11/2005, 14h22
  4. [VB.NET] Perte de focus entre deux form
    Par toniolol dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/07/2005, 09h00
  5. Réponses: 4
    Dernier message: 18/05/2005, 15h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo