Maison > développement back-end > C++ > Comment puis-je masquer les boutons TabControl tout en l'utilisant pour la gestion des panneaux empilés ?

Comment puis-je masquer les boutons TabControl tout en l'utilisant pour la gestion des panneaux empilés ?

Mary-Kate Olsen
Libérer: 2024-12-30 03:00:25
original
576 Les gens l'ont consulté

How Can I Hide TabControl Buttons While Still Using It for Stacked Panel Management?

Masquage des boutons TabControl pour la gestion des panneaux empilés

Lors de la conception d'interfaces utilisateur, il peut être difficile de gérer plusieurs panneaux qui affichent différents masques de données. Une approche courante consiste à utiliser un contrôle TreeView pour la sélection des panneaux et à gérer manuellement la visibilité des panneaux. Cependant, cette approche peut devenir lourde lors de l'ajout ou du redimensionnement de panneaux.

Solutions potentielles

Deux solutions potentielles existent :

  1. TabControl avec boutons cachés : Utilisez un TabControl, où chaque panneau réside dans une TabPage. Cependant, cette méthode nécessite de masquer les boutons TabControl, car TreeView est responsable de la sélection des éléments.
  2. StackPanelControl : Créez un contrôle hypothétique qui organise les panneaux dans une pile, éliminant ainsi le besoin d'un panneau manuel. gestion.

Solution optimale

La solution la plus efficace implique en tirant parti d'un peu de la magie de l'API Windows. En créant une classe personnalisée et en implémentant la méthode WndProc, vous pouvez intercepter le message TCM_ADJUSTRECT envoyé par TabControl pour ajuster la taille de l'onglet. Cela permet d'ajuster la taille de l'onglet à zéro au moment de l'exécution, masquant ainsi les boutons de l'onglet.

En utilisant la propriété SelectedIndex ou SelectedTab, vous pouvez basculer de manière transparente entre les panneaux, en utilisant TreeView pour la sélection d'éléments et TabControl pour disposition des panneaux.

Mise en œuvre

  1. Introduire une nouvelle classe dans votre projet et collez le code suivant :
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);
  }
}
Copier après la connexion
  1. Compilez le projet et déposez le contrôle StackPanel de la boîte à outils sur le formulaire.
  2. Pendant la conception, le les onglets seront visibles, ce qui facilitera le basculement entre les pages.
  3. Au moment de l'exécution, les onglets seront masqués, permettant de basculer facilement entre les panneaux dans SelectedIndex. ou propriété SelectedTab.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal