none
controle crée par code RRS feed

  • Question

  • Bonjour

    voila j'ai un petit problème .

    j'ai un form principale (Form2) et un form secondaire (Form3) , Form3 contient un checkbox qui une foie activer crée un WebBrowser, voici mon code:


    Dim WebBrowser1 As WebBrowser
            WebBrowser1 = New WebBrowser()
    
            If CheckBox1.Checked = True Then
                WebBrowser1.Visible = True
                Form2.Controls.Add(WebBrowser1)
                WebBrowser1.Location = New Point(12, 28)
                WebBrowser1.Size = New Size(925, 724)
                WebBrowser1.Anchor = AnchorStyles.Right
                WebBrowser1.Top = 0
                WebBrowser1.Left = 0
                WebBrowser1.Navigate("www.google.fr")
            Else
                CheckBox1.Checked = False
                Form2.Controls.GetChildIndex = WebBrowser1.Visible = False
    End IF

    mon probl c'est que je n'arrive pas a fichier le code, après :

    CheckBox1.Checked = False
    je voudrait quand on décoche le checkbox le WebBrowser soit plus visible, comme sa par exemple :

    Form2.WebBrowserl1.Visible = True
    mais je n'y arrive pas :S

    Merci pour votre aide
    .::ZeroC00L::.
    jeudi 14 mai 2009 07:36

Réponses

  • Bonsoir,


    Je dirais qu'il manque aussi la location du label1


            Dim GroupBox1 As New GroupBox
            Dim label1 As New Label
    
            GroupBox1.Location = New Point(137, 183)
            GroupBox1.Text = ("TEST groupbox")
            GroupBox1.Size = New Size(250, 150)
    
            label1.Size = New Size(39, 13)
            label1.Location = New System.Drawing.Point(55, 45)
            label1.Text = ("TEST Label")
    
            GroupBox1.Controls.Add(label1)
            Me.Controls.Add(GroupBox1)
    .

    Cordialement, Troxsa
    • Marqué comme réponse AcideBl00D lundi 25 mai 2009 19:56
    mardi 19 mai 2009 21:11
    Auteur de réponse
  • Bonjour,

    Remplacez :

    GroupBox1.Container.Add(label1)
    
    par
    GroupBox1.Controls.Add(label1)
    
    

    Cordialement

    Gilles TOURREAU - MVP C#
    • Marqué comme réponse AcideBl00D lundi 25 mai 2009 19:56
    mardi 19 mai 2009 18:00
    Modérateur

Toutes les réponses

  • je vient d'essayer sa :


    Else
         CheckBox1.Checked = WebBrowser1.Visible = False
    End If

     
    mais marche pas non plus :(

    .::ZeroC00L::.
    jeudi 14 mai 2009 07:46
  • Bonjour AcideBl00D


    Le mieux serait de creer le controle directement dans la form a la position souhaiter et de lui mettre la propriété Visible a False
    et quand vous coché le checkBox cela changerais la propriété Visible a True

    If CheckBox1.Checked = True Then
    WebBrowser1.Visible = True
    Else
    WebBrowser1.Visible = False
    End If
    Le problème dans votre code est :
     1- Pourquoi creer un object sous l'action d'un CheckBox, a chaque fois qu'il sera actionné cela va creer un nouveau WebBrowser et ainsi de suite car les objet ne sont pas detruis a chaque fois, le mieu serai soit de detruire l'objet quand la case est decoché ou de faire comme j'ai dit plus haut

     2- le petit bout de code suivant ne sers a rien
     Else
    
                CheckBox1.Checked = False
    
    
    

    Un If sers pour une condition valide ou pas (True ou False) Vrai ou Faux, ext ext ça ne sers a rien de lui mettre en plus une condition qui sera forcement vrai dans le else


    3 - Les multiples utilisation du symbole egale "=" est autoriser mais il lui faut encore qu'il comprenne par ou il doit commencer pour cela il faut utiliser des parentezes (exemple)
     Form2.Controls.GetChildIndex = (WebBrowser1.Visible = False
    )
    (Cela ne fonctionnera pas non plus car GetChildIndex n'est pas Bool)

    .





    Cordialement, Troxsa
    jeudi 14 mai 2009 10:24
    Auteur de réponse
  • Re

    MErci pour ton aide mais je ne souhaite pas faire comme sa , j'ai commencer comme sa au debut mais
    j'ai plusieurs controler a afficher sur mon Form2 a partir de mon Form3, ( comme des module ) c'est pour sa que
    je voulais le faire par le biait du code.

    et il possible de faire ce que je voulait au debut ? ou sinon par une autre possibiliter que de metre dejas le controler
    sur le Form2.

    Merci
    .::ZeroC00L::.
    jeudi 14 mai 2009 17:46

  • AcideBl00D,


    Des modules ne sers pas a afficher des contrôles, un module
    est la pour généraliser des procédures ou des fonctions. Quoi
    que on peux aussi créer des contrôles par le biais des module
    mais ça ne sers pas a ça, en tout cas c'est pas ce que j'ai appris !

    Le concepteur est là pour nous aider un maximum pour nous
    évités a taper du code ...

    Ce que vous rechercher a faire est complément possible
    Déjà avant d'ajouter un contrôle a la form il est préférable
    de le finir avant ...

    Le code que vous avez donné
                WebBrowser1.Visible = True
    
    Form2.Controls.Add(WebBrowser1)
    WebBrowser1.Location = New Point(12, 28)
    WebBrowser1.Size = New Size(925, 724)
    WebBrowser1.Anchor = AnchorStyles.Right
    WebBrowser1.Top = 0
    WebBrowser1.Left = 0
    WebBrowser1.Navigate("www.google.fr" )
    Il faudrait faire plutot

                WebBrowser1.Visible = True
    
    WebBrowser1.Location = New Point(12, 28)
    WebBrowser1.Size = New Size(925, 724)
    WebBrowser1.Anchor = AnchorStyles.Right
    WebBrowser1.Top = 0
    WebBrowser1.Left = 0
    WebBrowser1.Navigate("www.google.fr" )
    Form2.Controls.Add(WebBrowser1)

    Supprimer :
     CheckBox1.Checked = False
    
    et ça
    Form2.Controls.GetChildIndex = 

    Coriger ça :
    WebBrowser1.Visible = False
    
    Indice : le WebBrowser est sur quelle form ? (si j'ai bien compris)

    Je pense qu'il est preferable de detruire aussi l'object WebBrowser quand WebBrowser1.Visible = False
    Pour le detruire il faut utiliser Dispose

    Pour la suite des choses je vous laisse rechercher un peux ;)


    .
    Cordialement, Troxsa
    • Proposé comme réponse TroxsaEditor jeudi 14 mai 2009 19:16
    jeudi 14 mai 2009 19:15
    Auteur de réponse
  • Salut


    Merci pour ton aide je regarde tout sa tout a l'heure.

    quand je parle de module c'est pas en rapport avec les module de visual basic , mais des module pour mon logiciel par exemple j'ai un bouton qui affiche un flux Rss ou un navigateur internet,  ( dans mon logiciel j'appelle sa un module) voila un peut plus de precision :D

    Indice : le WebBrowser est sur quelle form ? (si j'ai bien compris)
    le bouton qui affiche le webBrowser1 et sur le form3 et le webBrowser1 s'affiche sur le Form2, voila

    Merci @++
    .::ZeroC00L::.
    vendredi 15 mai 2009 06:23
  • Bonjour,

    Il faut appeler les chose par le nom sinon quand vous posterez une question avec vos mots a vous, on va pas ce comprendre et les autres nom plus
    et a force cela deviens lassant et vous risquerez de ne plus avoir de reponse

    .
    Cordialement, Troxsa
    vendredi 15 mai 2009 07:42
    Auteur de réponse
  • ok , je m'en souviendrait a l'avenir :)
    .::ZeroC00L::.
    vendredi 15 mai 2009 10:36
  • Bonjour

    en fait je veut faire ceci a partir du code, pour savoir et comprendre comment utiliser un contrôler crée par code.

    @++
    .::ZeroC00L::.
    lundi 18 mai 2009 06:19
  • Bonjour

    Alors comment puis-je faire ? svp .
    abandonnons le code au-dessus je suis arriver a le faire comme je voulais , mais essayons avec ce code la maintenant.

    prenons exemple avec un Groupbox , qui devrai recevoir 2 label ( GroupBox crée par code ainsi que les label )

    le code: ( groupbox)


        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim GroupBox1 As GroupBox
            GroupBox1 = New GroupBox()
            Me.Controls.Add(GroupBox1)
    
            GroupBox1.Location = New Point(137, 183)
            GroupBox1.Text = ("TEST groupbox")
            GroupBox1.Size = New Size(250, 150)
        End Sub


    une foie le clic effectuer le groupbox et crée, mais maintenant si je veut continuer et ajouter mon label1 dans ce meme groupbox , je peut pas voici le code que j'ai entreprit:


        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim GroupBox1 As GroupBox
            GroupBox1 = New GroupBox()
            Me.Controls.Add(GroupBox1)
    
            GroupBox1.Location = New Point(137, 183)
            GroupBox1.Text = ("TEST groupbox")
            GroupBox1.Size = New Size(250, 150)
    
            Dim label1 As Label
            label1 = New Label()
            Me.Controls.Add(label1)
    
            label1.Text = ("TEST Label")
            GroupBox1.Container.Add(label1)
    
        End Sub



    mais il me retourne ce message d'erreur

    La référence d'objet n'est pas définie à une instance d'un objet.

    je n'arrive pas a ajouter un contrôler dans un autre a partir d'un code.

    Merci pour votre aide.
    .::ZeroC00L::.
    mardi 19 mai 2009 06:45
  • Bonjour,

    Remplacez :

    GroupBox1.Container.Add(label1)
    
    par
    GroupBox1.Controls.Add(label1)
    
    

    Cordialement

    Gilles TOURREAU - MVP C#
    • Marqué comme réponse AcideBl00D lundi 25 mai 2009 19:56
    mardi 19 mai 2009 18:00
    Modérateur
  • Bonsoir,


    Je dirais qu'il manque aussi la location du label1


            Dim GroupBox1 As New GroupBox
            Dim label1 As New Label
    
            GroupBox1.Location = New Point(137, 183)
            GroupBox1.Text = ("TEST groupbox")
            GroupBox1.Size = New Size(250, 150)
    
            label1.Size = New Size(39, 13)
            label1.Location = New System.Drawing.Point(55, 45)
            label1.Text = ("TEST Label")
    
            GroupBox1.Controls.Add(label1)
            Me.Controls.Add(GroupBox1)
    .

    Cordialement, Troxsa
    • Marqué comme réponse AcideBl00D lundi 25 mai 2009 19:56
    mardi 19 mai 2009 21:11
    Auteur de réponse
  • Bonjour

    je vient de rentrer d'une petit semaine a paris , Merci pour vos réponse je verait tout sa en rentrant du boulot :(

    @++
    .::ZeroC00L::.
    lundi 25 mai 2009 08:21
  • Revoilou

    Bon bas merci a vous sa marche niquel :) , j'ai quelque petit problème au niveau du " size" et du "anchor" mais je vais essayer de me debrouiller ^^

    @+++
    .::ZeroC00L::.
    lundi 25 mai 2009 19:58