Tabstrip en utilisant les objets form (vb.net)

Soyez le premier à donner votre avis sur cette source.

Vue 11 538 fois - Téléchargée 1 294 fois

Description

Ce code montre un exemple de gestion d'un TabStrip avec des objets FORM au lieu des objets FRAME.
Je trouve ceci plus clair que l'utilisation des FRAME.

Mes problèmatiques restantes sont :
1) Il n'est pas possible d'utiliser un module de classe pour gérer chaque TabStrip car le passage des références vers la Form principal et du TabStrip ne peut pas s'effectuer. VB me jette avec une erreur. (Hors une instance de classe par TabStrip serait beucoup mieux :-( ). Vu que cela est possible dans un module, alors j'ai créé un module générique qui gére n'importe quel TabStrip.
2) Il y un effet pas très design, c'est la Frame principal qui s'inactive lorsque l'on utilise le form du TabStrip (méthode SetWindowLong + WS_CHILD ne fonctionne pas)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
4
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Call SetWindowLong(stForms(UBound(stForms)).frmFormName.hWnd, GWL_STYLE, GetWindowLong(stForms(UBound(stForms)).frmFormName.hWnd, GWL_STYLE) Or WS_CHILD) ne permet pas de laisser le focus sur la fenêtre parent.

J'ai laissé le code en commentaire pour ceux qui souhaitent essayer.
J'ai cherché à mettre d'autres attributs mais rien à faire.
Je n'ai pas trouvé de solution en surfant :-{
Messages postés
4
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Dès que j'aurai le temps, je vais ajouter ce petit add-on pour le focus.
Je mettrai à disposition les nouvelles sources si ca veut bien fonctionner cette fois !

En ce qui concerne "TabsAssist 3.0 Free", il exite un objet standard vb qui permet déjà de jonglet facilement avec les onglets. Dans les 2 cas, on conserve les FRAMES. Personnellement, je n'aime pas ;-)
Messages postés
41
Date d'inscription
mardi 20 mai 2003
Statut
Membre
Dernière intervention
25 août 2007

Salut à tous,

Connaissez-vous "TabsAssist 3.0 Free" ? C'est un complément VB qui permet de faire fonctionner les onglets dans l'éditeur VB comme à l'exécution, et donc de jongler +/- facilement avec les frames [si on décide de conserver cette méthode ;-)]
> livré avec les sources
> http://fred.just.free.fr/francais/index.html

Bonne progr,
Derick
Messages postés
81
Date d'inscription
jeudi 19 février 2004
Statut
Membre
Dernière intervention
18 avril 2008

Je viens de me souvenir qu'il faut ajouter le style WS_CHILD (&H40000000) pour que les forms ne volent pas le focus au form parent. Présentement, quand un form est sélectionné, le form parent est désélectionné, mais avec SetWindowLong, avec nIndex = GWL_STYLE (-16), le form parent gardera le focus également (comme si c'était n'importe quel contrôle qu'on dépose sur un form). Il est important de conserver l'ancien style (à récupérer avec GetWindowLong) et de mélanger WS_CHILD avec l'opérateur Or (on l'enlèverait avec And Not). Donc, la ligne à ajouter (je la mettrais juste après l'appel à SetParent) serait :

Call SetWindowLong(stForms(UBound(stForms)).frmFormName.hWnd, GWL_STYLE, GetWindowLong(stForms(UBound(stForms)).frmFormName.hWnd, GWL_STYLE) Or WS_CHILD)

Il ne reste qu'à déclarer les APIs et les constantes, dont j'ai mis les valeurs entre parenthèses. Maintenant, on ne devrait y voir que du feu !
Messages postés
4
Date d'inscription
jeudi 8 juin 2006
Statut
Membre
Dernière intervention
6 juillet 2006

Je vais mettre à jour mon source et tester dès que possible, A suivre ...
Afficher les 8 commentaires

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.