Reunir mes form dans un form unique avec un tabcontrol [Résolu]

Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
- - Dernière réponse : Attila54
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
- 14 déc. 2011 à 11:45
Bonjour,

J'ai une appli a 5 forms (form1 a form5) pour l'exemple

Je voudrais reunir mes forms dans un form principal qui serait le form1 et pouvoir consulter le autres forms via un tabcontrol comme ceci

Avant :

Forms 1 et 2 séparés
Form1



Form2



Apres :

Form1 avec la Tabcontrol


Pour cela, j'ai crée dans mon form1 un tabcontrol avec autant d'onglets que de forms
J'ai aussi crée dans mon form1 un panel (Dock=Fill, Modifier=friends)
puis dans chaque form, un sendToBack pour afficher les controls et les bouger pour mettre ces controls en "enfants" dans chaque panel (controls de form1 enfants du panel de form1 ... etc ...)

Normalement, si j'ai bien suivi jusque la, je devrais :
A l'exécution, dans l'init de la form1 principale (par exemple, au premier event Activated)
- Créer chacune des formes secondaires
- Modifier la propriété Parent de chaque panel "général" ainsi :
partMyForm1.MyGeneralPanel1.Parent = MyTabControl.TabPages[i]


Sauf que je ne comprends pas ce que veux dire au cas présent
"créer chacune des formes secondaires" et du coup je suis bloqué pour la suite des opérations

Merci de vos suggestions
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
3
3
Merci
Bonjour Attila n°54,

Oui, c'est bien de chercher car je vois une commande "impression" au 6 novembre 2011 de "Trésors et catacombes" sur la comptabilité de l'éditeur, toutefois je ne sais pas qui c'est. Alors ce n'est pas pour le gain imposable de 1,2 € mais surtout pour savoir si c'est bien toi, et faire ta réclamation, car tu semble même dépassé pour faie une simple réclamation sur Internet... Et moi je suis psychologiquement ennuyé que tu aies peut être commandé quelque chose que tu n'as pas reçu et dont je suis l'auteur (de l'écrit, pas de l'expédition)...

*

Evidemment que c'est le menuStrip qu'il faut utiliser !

*

Tu ne peux pas continuer comme ça à mettre au hasard des objets, ou créer des forms, puis ne sachant pas, ni comment coder ensuite, ni comment faire tourner les objets que tu as mis, de demander aux autres de se débrouiller dans ton ornement d'objets vides de code opérationel.

*

Efface tout, recommence au ébut en indiquant préalablement à toute action, ce que doit faire ton programme.
Ensuite tu auras une indication sur ce qu'il faut utiliser comme objet et comment y mettre le code.

Merci, cordialement, Joe.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ehjoe
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
3
0
Merci
Bonjour Attila n°54,

De retour, as-tu le roman, as-tu réclamé ?

*

Faut demander comment concevoir avant de te lancer car là ça va faire sans doute assez salade de fruits et de légumes.

Pour ma part, et sachant ce que tu sais faire, je dirais de piloter depuis la form1 l'appel des autres forms selon besoin, sans rien toucher d'autre avec des form normales.

Tu as dû attaquer des form MDI, j'aime pas trop, elle ont moins de possibilités et de souplesse que les forms classiques, je recommande davantage les form normales...

A te lire, cordialement, Joe.
Commenter la réponse de ehjoe
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
Bonjour Attila N°1

Eh bien non, je n'ai pas recu le roman malgré deux courrier a l'adresse que tu m'avais donnée

En fait, j'ai cherche avant de demander, la démarche me semblait plus logique mais je n'ai rien fait sur l'appli en elle même, j'ai testé sur une copie of course.

En fait, le but est plus esthetique et pratique qu'autre chose
Mon appli contient 5 forms tout a fait normaux (system.Windows.form).
il m'arrive d'ouvrir plusieurs forms sans toutefois tous les utiliser au même moment et il est genant d'avoir tous les forms reduits dans la barre des taches ou étalés sur le bureau.

Je voulais donc avoir juste une sorte de "container" qui contiendrait mes 5 forms et une barre qui me permettrait d'ouvrir ou de fermer tel ou tel form selon le besoin sans pour cela avoir tout étalé partout.
Un peu comme les onglets de Firefox ou d'IE par exemple

Voili voila
Commenter la réponse de Attila54
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
3
0
Merci
Suite...

Roman -> Vois si tu as été débité, as-tu une copie de ta commande par mail ?

---------

Mais tes forms tu les fermes si tu n'en a plus besoin !

Si certaines sont contradictoire entre-elles, on peut prévoir que quand l'une s'ouvre une autre peut se dermer ?

Cordialement, Joe.
Commenter la réponse de ehjoe
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
Re
Bien sur j'ai la copie de la commande et en ce qui concerne le debit, j'avoue ne pas avoir regardé ....

En fait, les forms sont complementaires mais aussi parfois independants

Chronologie :
Le form1 s'ouvre en premier (au lancement du prog)obligatoirement
On remplis le form1 avec des champs obligatoires et optionnels
A la derniere textbox remplie, un bouton "calcul" verifie que tous les champs requis sont remplis et de la bonne manière.
- Si oui : il effectue un calcul et permet d'acceder a un bouton "form2"
- Si non : Message d'erreur et la main est redonnée au champ mal rempli et
ce jusqu'à remplissage ok ==> on retourne au cas "bien rempli"

Durant ce remplissage, on peut faire, toujours par un bouton,appel a 2 forms (form3 et form4) qui gerent des données complémentaires. Ces données seront injectées à la demande (button)sur le form1
Une fois cela fait le Form2 se load et effectue des calculs en automatique avec un calcul de resultat.

Une fois ce calcul fait, on peut :
- soit visualiser, enregistrer ou imprimer le form d'impression (form5)
- soit fermer le logiciel
- soit retourner au form1 et modifier des données

Voila en gros comment s'articule le log d'un point de vue chronologique, tout le probleme est que si par exemple je n'ai pas besoin du form1 pendant le calcul du form2, je dois l'avoir quand même "sous le coude" pour reinjecter des data selon le cas

Concrètement pour le moment, quand le form2 est ouvert, le form1 est aussi ouvert mais juste masqué du fait qu'il est positionné exactement comme le form2 par rapport a l'ecran
Commenter la réponse de Attila54
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
3
0
Merci
Roman :
Puis-je avoir la copie du mail par mon profil tu auras mon adresse via mon site, que je puisse faire une réclamation, tu enlèves les informations personnelles si tu veux. Merci.

*

Alors il n'est pas anormal dans un progamme d'avoir deux ou trois forms d'ouvertes en même temps, pas plus quand même. Le tout est de ne pas pouvoir modifier quelque chose dont une autre form ouverte serait dépendante.

On peut utiliser la propriété de la form enabled = true / false pour justement la rendre inerte si une autres form est ouverte à sa suite, et que la form ouverte en premier peut dépendre de la seconde.
En quittant la seconde, il faut mettre une propriété unoad ou closing en vbNet, et dedans remettre sur enabled = true la form qui a été rendu inerte.

Exemple, une aide générale indépendante peut être ouverte (une seule fois) par n'importe quelle forme et rester ouverte, c'est l'utilisateur qui décide.

Par contre une form1 dont on enregistre des données qui seront gérées dans une form2, quand la form1 est ouverte on rend inerte la commande et la form2, puis quand ça se valide et que les conditions sont remplies on rend inerte la form1 et on passe la main à la form2, etc...

Pour la form1, quand tu cliques sur le bouton form2, on rend inerte la form1.

Néanmoins, généralement on n'utilise pas de boutons "form1", "form2", mais un menu haut, dont on rend inerte (enabled) les rubriques qui ne sont pas appelables selon l'état de la form actuelle.

C'est quoi l'injection de données des form3 et 4 permettant de compléter la saisie sur la form1 ???

Noramelement on devrait avoir tout sur le form1, sauf grosse impossibilité.

Et pourquoi un calcul (re-calcul) par la form2, a priori la form1 devrait tout faire.

Et quand tu lances ta dernière form5 d'impression, cette fois on rend inertes les autres forms, mais on les laisse présentes, encore une fois il n'est pas anormal d'avoir trois forms d'ouvertes si besoin, c'est à l'utilisateur de gérer ça...

Sans doute un choix non optimisé des forms et un choix pas assez adapté des objets (bouton au lieu de menu), à te lire on devrait pourvoir mettre tout ça sur environ 3 forms...

Si tu veux, passe une copie d'écran de tes forms ou passe moi ton code (dans un dossier zipé) à mon adresse.

Au plaisir, cordialement, Joe.
Commenter la réponse de ehjoe
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
Re Joe

Je suis tout a fait daccord avec toi quant a l'optimisation des forms, je ne suis pas responsable du cahier des charges et ce que j'ai pu dire ou exprimer n'a jamais vraiment ete pris en compte (y compris mon manque de compétences en la matière).

J'ai beau me tuer a dire ce que je pense, il y en a toujours qui croient que tout est aussi simple qu'un tableau excel basique.

Bref, forms non optimisés je le concède mais je dois faire avec
Commenter la réponse de Attila54
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
3
0
Merci
Attila n°54, Suite,

Bon, ok, et je présume que le responsable du cahier des charges n'y connaît rien c'est certain, mais dans ce rien connaissait le mot FORM pour faire des boutons "form2", "form3" ... truc que je vois pour la première fois (qui n'est pas coutume) !

J'avais aussi posé pas mal d'autres questions, c'est bon j'ai en somme les réponses "qui tacet consentire videtur", qui se dit "koui takète konsentiré widétour"?

Alors à un de ces jours, au prochain programme qui sait, bon courage, cordialement, Joe.
Commenter la réponse de ehjoe
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
Bon je n'ai pas tout compris mais bien sur, les boutons sur les forms n'ont pas le nom form2 ou formn, il sont nommés de la maniere la plus claire possible afin de savoir ou l'on va.

Les boutons ne posent pas de problèmes du tout

C'est simplement qu'ils voulaient des onglets en haut d'un form principal pour pouvoir naviguer dans les forms enfants sans pour cela avoir plusieurs fenetres ouvertes dans la barre des tâches. Peut être me suis je mal exprimé

Je ne vois pas pourquoi tu dis que je ne dis rien et que je conscens, j'ai moult fois dis ce que je pensais de cette organisation logicielle mais je ne puis rien y faire.

Peut être arriverais je a leur faire passer l'idée de ces onglets
Commenter la réponse de Attila54
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
l'injection de données consistait simplement a remplacer une donnée du form1 par une donnée calculée dans les formulaires 3 et/ou 4

Le tout est de ne pas pouvoir modifier quelque chose dont une autre form ouverte serait dépendante.

ce n'est pas possible même a l'heure actuelle

Pour tout ce qui est de rendre inerte certains boutons et forms quand d'autres sont ouverts, je l'ai dit et redit, et maintenant c'est le cas (mais ils veulent changer ca)

Et pourquoi un calcul (re-calcul) par la form2, a priori la form1 devrait tout faire.

Non en fait le form1 fait un calcul bien précis, il passe son info au form 2 qui effectue a son tour un calcul automatise et ca je ne peux pas le mettre sur le form1
Commenter la réponse de Attila54
Messages postés
728
Date d'inscription
samedi 4 avril 2009
Dernière intervention
30 mars 2014
3
0
Merci
Attila...

Je n'ai pas vu le mail de confirmation de paiement et commande ???

*

Ben pour ton objet, c'est comme tu le dis, tu mets en effet un tabControl avec des objets sur les différents controls qui vont s'afficher selon les onglets, ce que tu fais est bon, y a pas de problème.

Cordialement, Joe.
Commenter la réponse de ehjoe
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
Re Joe,

Pour mon bon de commande je cherche, hier soir j'ai bosse jusqu'à 21h00 ...

Pour le reste je continue de chercher, mais honnetement, je ne trouve pas cela tres joli le tabcontrol, je prefere de loin le look des menustrip integrables completement. Je ne sais pas si c'est faisable avec un menustrip.
Commenter la réponse de Attila54
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
Bien reçu la communication
Je fais ce qu'il faut pour le livre d'une part
de l'autre je me debrouille avec mon menu
Cordialement
Attil@54
Commenter la réponse de Attila54

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.