Ce contrôle dérivant de la ListBox vous permet d'ajouter des contrôles classiques à sa collection d'objets qui seront affichés tels quels. (Jettez un oeil au screenshot pour avoir une idée)
Les classes MyClass et MyClassUI sont bien entendu de simples exemples, à vous de mettre les classes que vous désirez voir dans votre ListBox.
Je commente très peu mon code, mais n'hésitez pas à me poser des question si vous en avez. Je suis également ouvert aux suggestions.
Source / Exemple :
//La clé du code est dans cette redéfinition de OnDrawItem :
protected override void OnDrawItem(DrawItemEventArgs e)
{
object item = Items[e.Index];
if (item is Control)
{
Control itemc = (Control)item;
itemc.Parent = this;
itemc.Bounds = e.Bounds;
}
else
{
base.OnDrawItem(e);
}
}
protected override void OnMeasureItem(MeasureItemEventArgs e)
{
object item = Items[e.Index];
if (item is Control)
{
int h = ((Control)item).Height;
int w = ((Control)item).Width;
e.ItemWidth = w;
e.ItemHeight = h;
}
else
{
base.OnMeasureItem(e);
}
}
public CustomListBox()
: base()
{
base.DrawMode = DrawMode.OwnerDrawVariable;
}
Conclusion :
Cette source permet de faire de belles listbox rapidement et relativement efficacement.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.