Est-il possible de désactiver un onglet dans un onglet de contrôle?
J'utilise C #.
Est-il possible de désactiver un onglet dans un onglet de contrôle?
J'utilise C #.
La classe TabPage n'a pas de propriété Enable. Vous pouvez obtenir un effet similaire en définissant simplement la propriété Enable des contrôles de cette page. Cela évite également le problème du traitement d'un TabControl qui n'a qu'une page. Par exemple:
public static void EnableTab(TabPage page, bool enable) {
foreach (Control ctl in page.ctls) ctl.Enabled = enable;
}
Vous pouvez utiliser simplement:
tabPage.Enabled = false;
Cette propriété n'est pas affichée mais fonctionne sans problème.
Vous pouvez programmer l'événement de sélection sur TabControler
pour qu'il soit impossible de passer à un onglet non modifiable:
private void tabControler_Selecting(object sender, TabControlCancelEventArgs e)
{
e.Cancel = !e.TabPage.Enabled;
}
Vous pouvez enregistrer l'événement "Sélection" et annuler la navigation vers la page à onglet:
private void tabControl1_Selecting(object sender, TabControlCancelEventArgs e)
{
if (e.TabPage == tabPage2)
e.Cancel = true;
}
Une autre idée est de mettre tous les contrôles de la page à onglet dans un contrôle de panneau et de désactiver le panneau! Smiley
Vous pouvez également supprimer la page d'onglet de la collection tabCopntrol1.TabPages. Cela cacherait la page de tabulation.
les crédits vont à littleguru @ channel 9
Sans doute, vous voulez voir l'onglet dans l'onglet contrôle, mais vous voulez qu'il soit "désactivé" (c'est à dire, en grisé et ne peut pas être sélectionnée). Il n'y a pas de prise en charge intégrée pour cela, mais vous pouvez remplacer le dessin mécanisme pour donner l'effet désiré.
Un exemple de la façon de le faire est fourni ici.
La magie est dans cet extrait de code à partir de la source, et dans le DisableTab_DrawItem méthode:
this.tabControl1.DrawMode = TabDrawMode.OwnerDrawFixed;
this.tabControl1.DrawItem += new DrawItemEventHandler( DisableTab_DrawItem );
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.