Ausblenden von TabControl-Schaltflächen für die gestapelte Panel-Verwaltung
Beim Entwerfen von Benutzeroberflächen kann es schwierig sein, mehrere Panels zu verwalten, die verschiedene Datenmasken anzeigen. Ein gängiger Ansatz besteht darin, ein TreeView-Steuerelement für die Panel-Auswahl zu verwenden und die Panel-Sichtbarkeit manuell zu verwalten. Dieser Ansatz kann jedoch beim Hinzufügen oder Ändern der Größe von Panels umständlich werden.
Mögliche Lösungen
Es gibt zwei mögliche Lösungen:
Optimale Lösung
Die effektivste Lösung ist die Hebelwirkung ein bisschen Windows-API-Magie. Durch das Erstellen einer benutzerdefinierten Klasse und das Implementieren der WndProc-Methode können Sie die TCM_ADJUSTRECT-Nachricht abfangen, die das TabControl sendet, um die Tabulatorgröße anzupassen. Dadurch kann die Tab-Größe zur Laufzeit auf Null angepasst werden, wodurch die Tab-Schaltflächen effektiv ausgeblendet werden.
Durch die Verwendung der SelectedIndex- oder SelectedTab-Eigenschaft können Sie nahtlos zwischen Panels wechseln, indem Sie TreeView für die Elementauswahl und TabControl für verwenden Panel-Layout.
Implementierung
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); } }
Das obige ist der detaillierte Inhalt vonWie kann ich TabControl-Schaltflächen ausblenden, während ich es weiterhin für die Verwaltung gestapelter Bedienfelder verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!