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 :

Création d'un modèle afin de le dupliquer dans un formulaire


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 931
    Par défaut Création d'un modèle afin de le dupliquer dans un formulaire
    Bonjour à tous,

    Dans le cadre d'une conversion de VB6 vers VB.net.

    J'ai plusieurs formulaires avec énormément d'objet graphique, surtout l'un de ceux ci qui comporte 120 fois le même groupe de 10 objets donc 1200 objets graphique (textbox, picture, label).

    En vb6 impossible de dépasser les 255 objets sans passer par des tableaux d'objet avec la gestion des index. VB6 le gère parfaitement et mon code en est simplifié par la suite à l'aide de boucle, surtout que ce qui me permet de gérer ces images et texte est lui aussi en tableau.
    En VB.net il n'y a pas de gestion d'index sur les Objet mais j'ai trouvé une parade qui fonctionne et pratique lorsqu'il n'y a pas autant d'objet crée.

    exemple simplifié:
    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
     
        private MesTextBox(10) as new TextBox
     
        Public Sub New()
              MesTextBox(0) = textBox0
              MesTextBox(1) = textBox1
              MesTextBox(2) = textBox2
              MesTextBox(3) = textBox3
              MesTextBox(4) = textBox4
              MesTextBox(5) = textBox5
              MesTextBox(6) = textBox6
              MesTextBox(7) = textBox7
              MesTextBox(8) = textBox8
              MesTextBox(9) = textBox9
        End Sub
    J'utilise ensuite MesTextBox comme je le faisait en VB6.

    Toutefois sur le formulaire aillant les 1200 objets j'aimerais savoir s'il y a mieux à faire quand même.
    J'ai entendu parlé de création d'un modèle afin de le reproduire. Mais pour le moment j'ai pas trouvé d'exemple.

    Voila mon modèle à reproduire 120 fois.

    Nom : Modele.png
Affichages : 257
Taille : 635 octets
    il y a donc un GroupBox qui contient 6 PictureBox, 3 textbox et un label (sur la photo un textbox avec le 1 mais un label est mieux). Les PictureBox me sert à afficher des voyants d'état ou d'alarme, les TextBox pour des mesures et le Label pour le numéro de 1 a 120 (toujours fixe)

    Les 120 groupes sont divisé en 4 et affichés dans 4 onglets d'un tabControl.

    Je continu à chercher mais si vous avez un tuto à me conseiller se serait sympa, merci.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Juin 2010
    Messages : 210
    Par défaut
    Bonjour,

    Je pense que tu devrais te tourner vers la création de user control.

    Voici un lien du site

    http://morpheus.developpez.com/usercontrols/

    Je pense que tu pourras en trouver plein d'autres, ici ou ailleurs.

    Pour résumer cela te permets de créer une forme générique que tu veux utiliser plusieurs fois. (Pour donc, ne pas t’embêter à la créer X fois).

    J'espère que cela pourra t'aider.

    A+

  3. #3
    Membre éprouvé Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 931
    Par défaut
    Merci, je regarde le lien.

  4. #4
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Les UserControls te permettent en effet de créer et/ou personnalisé des controls ou des groupes de controls.

    Donc en effet pour créer un truc qui colle à ton modèle ça à l'air de coller.

    Cependant... 1200 textbox ?

    Ca va faire beaucoup à chargé... On pourrait pensé aussi au Datagridview, qui contient des TextboxColumn, eux même personnalisable.
    Pour cette quantité, ça me semble plus adapté... Après je ne sais pas les besoins spécifiques.

  5. #5
    Membre éprouvé Avatar de megamario
    Homme Profil pro
    VB6/VB.net/C/C++/C#
    Inscrit en
    Septembre 2008
    Messages
    931
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : VB6/VB.net/C/C++/C#
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 931
    Par défaut
    Il n'y a pas 1200 textbox, mais en tous 1200 objets, et encore il y a quelques labels et textboxs en plus sur un autre onglet. Cela ne pause aucun souci avec VB6, j’espère qu'avec VB.net cela ira. En ce qui concerne le traitement vu que c'est coupé en 4 onglets je traite que ce qu'il y a de visible uniquement. Inutile de rafraîchir la totalité des objets qui ne sont pas dans mon onglet tu tabControl actif.

    Le but de cette vue c'est la visualisation des états, défauts et mesure des 120 redresseurs max (convertisseur d’énergie réseaux 380 / 54V) .

    Nom : ModeletOTAL.png
Affichages : 262
Taille : 14,9 Ko
    Voici l'une des vue d'un des onglets (VB6). En fonctionnement les images sont bien sur replis de jpg représentant un voyant de couleur rouge (allumer ou éteint pour les alarmes), vert (allumer ou éteint pour les états) etc..

  6. #6
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Je comprends mieux les quantités d'information.

    Et je pense qu'un DatagridView ferait très bien le travail !

    En plus, tu pourrais concevoir UNE requête pour te ramener toutes les données d'un tableau entier et d'un coup,
    et ensuite remplir automatiquement les cellules avec des images en fonction des données reçus.

    Tu n'auras pas à remplir case par case et ça ira trèsssss vite.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/07/2015, 09h30
  2. Réponses: 1
    Dernier message: 01/09/2009, 13h42
  3. Création d'une Team afin d'apprendre XNA
    Par Bori-Visions dans le forum Projets
    Réponses: 11
    Dernier message: 07/05/2007, 14h42
  4. Réponses: 5
    Dernier message: 08/09/2006, 12h23
  5. Création d'un modèle de projet .
    Par Cédric_07 dans le forum MFC
    Réponses: 2
    Dernier message: 15/09/2004, 14h11

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