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 Mobile .NET Discussion :

[CF][VB.Net]Pourquoi instanciation d'une Form entraîne son affichage; Est-ce un Bug ?


Sujet :

Windows Mobile .NET

  1. #1
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 95
    Points
    95
    Par défaut [CF][VB.Net]Pourquoi instanciation d'une Form entraîne son affichage; Est-ce un Bug ?
    Voilà j'ai remarqué quelque chose en developpant mon appli.
    j'explique:
    Avec ce code:

    Normalement F3 ne doit pas s'afficher.
    mais lors de l'execution F3 s'affiche, Bizzare !!!!
    j'ai remarqué que c'est due à la proprieté WindowsState de F3:

    lorsque je la remet à normal:

    le probleme ne se pose pas.
    Si qlq aurai une explication !!!!
    au fait l'os c'est WindowsCE.net 4.2

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    pendant le Design de la Form3 met la propriété Visible à False, c'est peut être celà ( Souvenir de Delphi ) . Sinon en effet, c'est très étrange.

  3. #3
    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
    ok
    donc les propriétés que tu nous montre concerne une autre classe,
    il faut donc comprendre d'une part class Form2 avec le bouton
    puis Class Form3 avec les propriétés indiquées c'est çà :
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  4. #4
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par neguib
    ok
    donc les propriétés que tu nous montre concerne une autre classe,
    il faut donc comprendre d'une part class Form2 avec le bouton
    puis Class Form3 avec les propriétés indiquées c'est çà :
    Oui c'est exactement ça...

  5. #5
    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
    Alors ton problème est incompréhensible il nous manque certainement une donnée que tu as oublié de nous donner
    si c'est form2 le formulaire de demarrage de ton application aucune autre ne peut être afficher sauf si c'est form2 qui l'a lancée; mais estce que ton main est bien form2
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  6. #6
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par neguib
    Alors ton problème est incompréhensible il nous manque certainement une donnée que tu as oublié de nous donner
    si c'est form2 le formulaire de demarrage de ton application aucune autre ne peut être afficher sauf si c'est form2 qui l'a lancée; mais estce que ton main est bien form2
    Mon projet Test contient 2 Form (Form2 et Form3)
    L'object de demarrage c'est Form2:
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Public Class Form2
        Inherits System.Windows.Forms.Form
        Friend WithEvents Button1 As System.Windows.Forms.Button
        Dim F3 As Form3
     
    #Region " Code généré par le Concepteur Windows Form "
     
        Public Sub New()
     
            MyBase.New()
     
            'Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
     
            'Ajoutez une initialisation quelconque après l'appel
     InitializeComponent()
     
        End Sub
     
        'La méthode substituée Dispose du formulaire pour nettoyer la liste des
     composants.
        Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
            MyBase.Dispose(disposing)
        End Sub
     
        'REMARQUE*: la procédure suivante est requise par le Concepteur Windows Form
        'Elle peut être modifiée en utilisant le Concepteur Windows Form.  
        'Ne la modifiez pas en utilisant l'éditeur de code.
        Friend WithEvents Label1 As System.Windows.Forms.Label
        Private Sub InitializeComponent()
            Me.Button1 = New System.Windows.Forms.Button
            Me.Label1 = New System.Windows.Forms.Label
            '
            'Button1
            '
            Me.Button1.Location = New System.Drawing.Point(80, 112)
            Me.Button1.Text = "F3"
            '
            'Label1
            '
            Me.Label1.Font = New System.Drawing.Font("Arial Black", 14.25!,
     System.Drawing.FontStyle.Bold)
            Me.Label1.Location = New System.Drawing.Point(96, 32)
            Me.Label1.Size = New System.Drawing.Size(40, 56)
            Me.Label1.Text = "2"
            '
            'Form2
            '
            Me.ClientSize = New System.Drawing.Size(234, 175)
            Me.Controls.Add(Me.Label1)
            Me.Controls.Add(Me.Button1)
            Me.Text = "Form2"
     
        End Sub
     
    #End Region
        Private Sub Button1_Click(ByVal sender As Object, ByVal e As
     System.EventArgs) Handles Button1.Click
            F3 = New Form3
        End Sub
    End Class
    Voici Form3
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Public Class Form3
        Inherits System.Windows.Forms.Form
        Friend WithEvents Label1 As System.Windows.Forms.Label
     
    #Region " Code généré par le Concepteur Windows Form "
     
        Public Sub New()
     
            MyBase.New()
     
            'Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
     
            'Ajoutez une initialisation quelconque après l'appel
     InitializeComponent()
     
        End Sub
     
        'La méthode substituée Dispose du formulaire pour nettoyer la liste des
     composants.
        Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
            MyBase.Dispose(disposing)
        End Sub
     
        'REMARQUE*: la procédure suivante est requise par le Concepteur
     Windows Form
        'Elle peut être modifiée en utilisant le Concepteur Windows Form.  
        'Ne la modifiez pas en utilisant l'éditeur de code.
        Private Sub InitializeComponent()
            Me.Label1 = New System.Windows.Forms.Label
            '
            'Label1
            '
            Me.Label1.Font = New System.Drawing.Font("Arial Black", 14.25!,
     System.Drawing.FontStyle.Bold)
            Me.Label1.Location = New System.Drawing.Point(97, 32)
            Me.Label1.Size = New System.Drawing.Size(40, 56)
            Me.Label1.Text = "3"
            '
            'Form3
            '
            Me.ClientSize = New System.Drawing.Size(234, 175)
            Me.Controls.Add(Me.Label1)
            Me.Text = "Form3"
            Me.WindowState =
     System.Windows.Forms.FormWindowState.Maximized  'la ligne qui pose
     probleme
     
        End Sub
     
    #End Region
     
        Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As
     System.EventArgs) Handles MyBase.Load
     
        End Sub
    End Class
    Avec ce Code Normalement si l'on appui sur le bouton de Form2, Form3 ne s'affiche pas...dans mon cas, Form3 s'affiche...j'ai remarqué que le probleme venait de la propriete WindowState de Form3, en la mettant à Normal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.WindowState = System.Windows.Forms.FormWindowState.Normal
    le probleme ne se pose plus...
    J'espere avoir ete clair, en tout cas j'ai essaye de faire de mon mieu...
    Dans tout les cas pour votre aide...

  7. #7
    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
    ok
    tout d'abord deplace
    Dim F3 As Form3 'sans intérêt dans form2 en declaration de variable de classe
    met le plutôt dans la procedure Button1_Click, maintenant, à moins que tu ais des form3 qui se balladent sur ton ordi malicieusement, quand tu lance ton appli seule form2 doit apparaître et attendre
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  8. #8
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par neguib
    ok
    tout d'abord deplace
    Dim F3 As Form3 'sans intérêt dans form2 en declaration de variable de classe
    met le plutôt dans la procedure Button1_Click, maintenant, à moins que tu ais des form3 qui se balladent sur ton ordi malicieusement, quand tu lance ton appli seule form2 doit apparaître et attendre
    C'est pareil...
    Au demarrage tout est parfait j'ai que form2, mais lorsque je clique sur le bouton1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Private Sub Button1_Click(ByVal sender As Object, ByVal e As
     System.EventArgs) Handles Button1.Click
            Dim F3 As Form3
            F3 = New Form3
        End Sub
    Form3 s'affiche (Normalement il ne doit pas s'afficher)...
    On dirais que le New Joue le role d'un .show
    Bizarre Non ?

  9. #9
    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
    deux choix
    ajoutes en dur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ' 
    'Form3 
    ' 
    Me.ClientSize = New System.Drawing.Size(234, 175) 
    Me.Controls.Add(Me.Label1) 
    Me.Text = "Form3" 
    Me.Visible = False
    Me.WindowState = System.Windows.Forms.FormWindowState.Maximized
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Button1_Click(ByVal sender As Object, ByVal e As
     EventArgs) Handles Button1.Click 
       Dim F3 As New Form3
       F3.Visible = False 
    End Sub
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  10. #10
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 95
    Points
    95
    Par défaut
    Oui merci...pour le coup de pouce...
    Mais je voulais comprendre quel est l'erreur dans l'ancien code, ou bien que c'est un bug du CF...???

  11. #11
    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
    Ben on a pas su t'expliquer mais on t'a aidé à avancer, donc
    Si d'autres personnes soulèvent le même souci alors on pourra commencer à considerer le problème comme un bug
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  12. #12
    Membre régulier
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2004
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2004
    Messages : 145
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par neguib
    Ben on a pas su t'expliquer mais on t'a aidé à avancer, donc
    Si d'autres personnes soulèvent le même souci alors on pourra commencer à considerer le problème comme un bug
    Je cherchais pas une solution, car en mettant la proprieté WindowState du form à afficher (Form3) à System.Windows.Forms.FormWindowState.Normal le probleme ne se pose même pas...
    j'ai donc voulu savoir qu'elle en etait la cause, c'est ça ma question et non pas une methode pour resoudre un probleme...
    Donc je vais pas mettre de puisque aucune explication ne m'a été donnée...
    sauf si vous insistez...
    Merci en tout cas pour votre aide...

  13. #13
    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
    en fait je me demandes tout simplement si un WindowsState autre que Normal, ne déclenche pas un evenment sur la fenêtre qui déclenche à son tour un Paint; ce serait une explication; le sachant celà oblige à intervenir sur l'affichage par un visible =false.
    C'est bon là , ce n'est pas vraiment un bug, c'est à gérer
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.Net] Pourquoi ai-je une erreur à l'exécution d'une requête ?
    Par zooffy dans le forum Accès aux données
    Réponses: 3
    Dernier message: 25/06/2006, 10h35
  2. [VB.net] controler Excel dans une Form ?
    Par sergio_bzh dans le forum Windows Forms
    Réponses: 8
    Dernier message: 14/06/2006, 14h08
  3. [VB.net][VS2005] Validation d'une form avec errorProvider
    Par WriteLN dans le forum Windows Forms
    Réponses: 6
    Dernier message: 12/05/2006, 13h02
  4. Réponses: 9
    Dernier message: 31/05/2005, 10h05
  5. [VB.NET] Activer procédure d'une form à partir d'une autre
    Par ricil78 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/05/2004, 14h52

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