Masquage des boutons TabControl pour la gestion des panneaux
Dans la quête de rationalisation des interfaces utilisateur, le besoin se fait souvent sentir de gérer plusieurs panneaux avec une visibilité contrôlée. Bien que la manipulation manuelle offre une certaine flexibilité, elle devient fastidieuse lorsqu'il s'agit de plusieurs panneaux, en particulier pendant la phase de conception. Une solution idéale impliquerait l'utilisation d'un TabControl avec des boutons cachés, permettant le contrôle de la visibilité du panneau via un élément d'interface utilisateur alternatif.
Alternatives à TabControl
Les alternatives suivantes ont été envisagées :
Solution optimale : TabControl personnalisé
La solution optimale consiste à créer un TabControl personnalisé qui masque ses boutons. Ceci est réalisé grâce à la magie de l'API Windows, notamment en interceptant le message TCM_ADJUSTRECT et en renvoyant 1. Cela empêche le contrôle d'onglet d'ajuster le rect qui contient les onglets, les rendant ainsi invisibles.
Utilisation :
Ajoutez une nouvelle classe à votre projet, collez le code fourni (voir ci-dessous) et compilez. Déposez le nouveau contrôle sur votre formulaire pour conserver la visibilité des onglets pendant la conception tout en les masquant au moment de l'exécution. Utilisez la propriété SelectedIndex ou SelectedTab pour basculer entre les panneaux.
using System; using System.Windows.Forms; class StackPanel : TabControl { protected override void WndProc(ref Message m) { // Hide tabs by trapping the TCM_ADJUSTRECT message if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1; else base.WndProc(ref m); } }
Cette solution offre un moyen pratique et efficace de gérer la visibilité des panneaux sans les limitations de la manipulation manuelle ou le besoin de contrôles personnalisés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!