Je développe une application qui nécessite un contrôle ListBox
. Malheureusement, lorsque j'ajoute trop d'éléments dans le ListBox
, une barre de défilement verticale est affichée. Y at-il quelque chose que je peux faire pour cacher la barre de défilement verticale montrée par le ListBox
? Je peux voir qu'il y a une propriété pour cacher la barre de défilement horizontale mais il n'y a aucune propriété pour la barre de défilement verticale.Masquer la barre de défilement verticale dans le contrôle ListBox
Répondre
Le problème a été résolu. J'ai simplement créé un nouveau projet de modèle d'une bibliothèque de classes avec le code suivant
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace ClassLibrary1
{
public class MyListBox : System.Windows.Forms.ListBox
{
private bool mShowScroll;
protected override System.Windows.Forms.CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
if (!mShowScroll)
cp.Style = cp.Style & ~0x200000;
return cp;
}
}
public bool ShowScrollbar
{
get { return mShowScroll; }
set
{
if (value != mShowScroll)
{
mShowScroll = value;
if (IsHandleCreated)
RecreateHandle();
}
}
}
}
}
Ensuite, je l'ai construit le projet en sortie une nouvelle bibliothèque de classes ClassLibrary1.dll
Sur mon projet principal, je avez fait un clic droit sur ToolBox
et sélectionné Choose Items...
. Cliqué sur Parcourir ... et sélectionné la bibliothèque de classe que j'ai récemment créé (ClassLibrary1.dll) et cliqué sur Ouvrir puis sur OK. Ainsi, j'ai pu avoir ma coutume ListBox
qui n'a plus de barres de défilement verticales.
À l'exception de la barre de défilement horizontale, il est impossible d'éteindre la barre de défilement verticale en utilisation normale.
Vous pouvez uniquement le définir toujours visible ou automatique en utilisant la propriété ScrollAlwaysVisible
(également en VB).
Lorsque vous ajoutez un objet, vous pouvez au lieu recalculera ClientSize en calculant, quelque chose comme ça (non testé, vous pourriez avoir besoin d'ajouter des valeurs de Rembourrage à lui aussi bien):
Size sz = new Size(ListBox1.ClientSize.Width, _
ListBox1.Items.Count * ListBox1.Font.Height);
ListBox1.ClientSize = sz
Bien sûr, vous devez ajouter vérifiez la valeur dans le cas où il est zéro, et/ou vous voulez une hauteur minimum/maximum.
Merci, j'ai réussi à cacher la barre de défilement verticale créant une bibliothèque de classes. Je posterai ma solution dans un instant :) –
Nice :-) Comme vous avez demandé si cela pouvait être fait avec le contrôle ListBox, je vais laisser ma réponse telle quelle :-) – K3N
Pas de problème. Merci d'avoir répondu. Passez une bonne journée :) –
- 1. Comment masquer la barre de défilement verticale dans wxTextCtrl?
- 2. Empêche l'affichage de la barre de défilement verticale Silverlight ListBox
- 3. barre de défilement verticale
- 4. contrôle barre de défilement verticale dans silverlight autocompletebox
- 5. Masquer html barre de défilement horizontale mais pas verticale
- 6. Barre de défilement verticale Zone de texte
- 7. jscrollpane barre de défilement verticale
- 8. barre de défilement verticale iframe
- 9. Barre de défilement verticale manquante du contrôle Adobe Flex
- 10. barre de défilement verticale sur la superposition
- 11. Désactivation de la barre de défilement dans le contrôle Ultrawingrd
- 12. la barre de défilement verticale visible
- 13. barre de défilement verticale saute dans firefox
- 14. barre de défilement verticale inutile dans ie6
- 15. Masquer la barre de défilement dans LongListSelector
- 16. Supprimer la barre de défilement verticale, garder la barre de défilement horizontale dans iframe dans Chrome
- 17. Comment masquer la barre de défilement verticale parent après le chargement d'un iframe?
- 18. Masquer/afficher la barre de défilement webkit sur le défilement
- 19. Masquer la barre de défilement verticale de plusieurs lignes SELECT dans Firefox et Chrome?
- 20. La barre de défilement verticale de Webview coupe le contenu
- 21. Masquer la barre de défilement de la fenêtre parente basée sur la barre de défilement iframe
- 22. TextBox avec barre de défilement verticale sur le côté gauche
- 23. Barre de défilement verticale de tableview
- 24. Problème de barre de défilement verticale Flex
- 25. Masquage de la barre de défilement verticale dans wx.TextCtrl
- 26. Barre de défilement verticale sur le canevas dans J2ME
- 27. Problème de barre de défilement verticale
- 28. Vaadin ComboBox et barre de défilement verticale
- 29. Barre de défilement verticale UL ou DIV
- 30. personnalisation de la barre de défilement verticale avec css/jquery
Si vous supprimez la barre de défilement verticale, alors comment les utilisateurs accèdent-ils aux éléments au-delà du bord du défilement? –
@LeeTaylor Merci d'avoir répondu. J'ai oublié de mentionner que j'ai un RichTextBox. J'ai réussi à contrôler la zone de liste dans le RichTextBox. Il n'est donc pas nécessaire d'afficher les barres de défilement dans la liste. Bonne journée :) –
OK, je ne connais aucun moyen de supprimer les barres de défilement. Le seul moyen que je connaisse est de m'assurer que la liste est assez longue pour contenir tous vos objets. –