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

VB.NET Discussion :

[VB.NET][WindowsForm] Problème de formulaire dynamique


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 35
    Points : 17
    Points
    17
    Par défaut [VB.NET][WindowsForm] Problème de formulaire dynamique
    Bonjour à tous et tout d'abord bonnes fêtes de fin d'année à vous,
    voila mon petit soucis, je suis en train de creer un jeu tout con sous visual studio pour me faire un peu la main avec vb. c'est le jeu des chiffres et lettres

    Le truc c'est que j'ai un petit formulaire avec déjà un menu, et différents éléments..
    Le principe est qu'au chargement de mon formulaire je veux commencer par faire une partie de chiffres (le compte est bon) , puis deux parties de lettres, puis chiffres, etc etc..

    Ce que j'ai fais semble assez simple, j'ai créer deux fonctions dans ma classe, une appelée formuchiffretwoplayer en public, et l'autre formulettretwoplayer en public également.

    Voici le contenu de ma premiere :
    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
     
     
        'creation d'une fonction pour afficher le formulaire.
        Public Function formuchiffretwoplayer()
     
            MsgBox("fonction formulaire chiffre correctement appelée")
     
            ' initialisation des composants
            ' InitializeComponent()
     
            'Creer une nouvelle zone de texte
            Dim label_chiffre1 As New Label
     
            'met la taille du label
            label_chiffre1.Size = New Size(30, 30)
            label_chiffre1.Location = New System.Drawing.Point(60, 60)
            label_chiffre1.Text = "8"
            label_chiffre1.Show()
     
        End Function
    Et voici mon appel dans le chargement du formulaire :
    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
     
        Private Sub formu_twoplayers_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            player1.Text = nomjoueur1
            player2.Text = nomjoueur2
     
            ' on met dans recap les informations (nom joueurs et scores à 0)
            recap(0, 0) = nomjoueur1
            recap(0, 1) = nomjoueur2
            recap(1, 0) = 0
            recap(1, 1) = 0
     
            level = 0 ' lorsqu'on ouvre le formulaire on commence la partie à 0
            ' on va maintenant faire appel à la fonction de random pour savoir qui va commencer
            Randomize() 'initialise le générateur de nombre aléatoire
            firstplayer = CInt(Int((2 * Rnd()) + 1)) - 1 ' genère une valeur entre 1 et 2 
            MsgBox("Le joueur " & recap(0, firstplayer) & " joue en premier ")
     
            ' appel de la fonction d'affichage du formulaire chiffres
            formuchiffretwoplayer() '<<<<  ici 
        End Sub
    Vous l'avez donc deviner je cherche simplement à rajouter des éléments à mon formulaire de base en fonction de si je fais une partie de chiffres, ou une partie de lettre.
    Mais le pb , cela ne fonctionne pas ..

    Lorsque je décommente mon InitializeComponent() , il me fait juste une duplication de mon menu, ce n'est pas trop ce que je recherche..

    J'ai essayer plusieurs petites autres choses, mais rien ne fonctionne, mon label n'apparait pas..

    Donc voici ma question, est ce que cela est possible de rajouter des éléments à un formulaire existant en ligne de code, et si oui qu'est ce que j'ai fais de mal

    Je vous remercie d'avoir pris le temps de lire tout mon blabla et j'espère que vous saurez me répondre à au moins l'une de mes questions
    Merci d'avance.
    Michael

  2. #2
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    Qu'est ce qui t'empêche de faire ce que Visual Studio fait pour toi à chaque fois que tu déposes un contrôle sur ta fenêtre ?

    Imaginons que tu veux placer un boutton dans le container de ta fenêtre (c'est du C#) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    // Création du boutton
    Button button2 = new Button();
    button2.Location = new System.Drawing.Point(10, 10);
    button2.Name = "buttonTest";
    button2.Size = new System.Drawing.Size(100, 100);
    button2.Text = "Test";
     
    // Ajout du boutton dans la liste des contrôles de la fenêtre
    this.Controls.Add(button2);
    Si par contre, tu veux ajouter ton contrôle dans un panel, il te suffit de modifier la dernière ligne par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    panel1.Controls.Add(button2);

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    Ah merci..
    Je vais essayer de me tourner dans cette direction alors..
    MAis je ne vois pas trop la différence en fait ..

    quand je fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            'Creer une nouvelle zone de texte
            Dim label_chiffre1 As New Label
     
            'met la taille du label
            label_chiffre1.Size = New Size(30, 30)
            label_chiffre1.Location = New System.Drawing.Point(60, 60)
            label_chiffre1.Text = "8"
    ça reviens à ça chez toi non?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      Button button2 = new Button();
      button2.Location = new System.Drawing.Point(10, 10);
      button2.Name = "buttonTest";
      button2.Size = new System.Drawing.Size(100, 100);
      button2.Text = "Test";
    Donc la différence viens au niveau du add control c'est ça? (que je dosi retranscrire en vb ou prendre une version c#)

    Ai je bien compris?

    En tout cas merci pour ta réponse

  4. #4
    Rédacteur

    Avatar de Jérôme Lambert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2003
    Messages
    4 451
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 451
    Points : 14 357
    Points
    14 357
    Par défaut
    En effet, si tu ne rajoutes pas ton contrôle à la liste des contrôles du container, ça ne risque pas de fonctionner.

    Comme tu l'as dit, il te faut traduire la ligne c# qui ajoute le contrôle à la liste du container, voici le code en vb.net :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Controls.Add(label_chiffre1)

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 35
    Points : 17
    Points
    17
    Par défaut
    Impek
    je test ça demain par contre, vu que j'ai éteins mon pc comme un c** bip..

    T'est comme moi toi tu dors pas de la nuit lol

    Enfin je te remercie pour tout et je te tiens au courant, et en ce 31 decembre, je te souhaite un très bon réveillon du nouvel an (champagne :p )

    Edit : merci pour tout ça fonctionne correctement merci merci merci Et bonne année 2007 à vous tous ..

Discussions similaires

  1. [AJAX] Formulaire dynamique
    Par kikou732 dans le forum AJAX
    Réponses: 0
    Dernier message: 26/12/2011, 22h23
  2. problème sur formulaire dynamique
    Par nicolasferraris dans le forum Langage
    Réponses: 4
    Dernier message: 11/03/2009, 09h10
  3. Réponses: 2
    Dernier message: 05/01/2007, 14h17
  4. [C#] Problème de formulaire dynamiques
    Par CORBASE dans le forum ASP.NET
    Réponses: 5
    Dernier message: 13/07/2006, 14h16
  5. problème de formulaire dynamique
    Par pmboutteau dans le forum ASP
    Réponses: 9
    Dernier message: 25/10/2005, 11h32

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