2011-11-23 7 views
1

Je suis en train de faire un ListView qui ressemble à ceci:sur mesure Listview (VB.NET)

enter image description here

Edité: Le listview a un en-tête personnalisé, la colonne sélectionnée est mise en évidence dans une autre couleur , les colonnes peuvent être redimensionnées, curseur personnalisable, tout le reste est visible dans l'image.

Est-il réaliste de faire un tel contrôle en utilisant VB.NET? Si oui, où recommanderiez-vous de commencer? Toute aide serait très appréciée.

+0

Juste un conseil: vous verrez probablement de meilleures réponses si vous expliquez des fonctionnalités spécifiques que vous recherchez. –

Répondre

0

L'image que vous montriez ressemble plus à un DataGrid pour moi qu'une vue liste et si vous êtes prêt à dépenser de l'argent, il y a beaucoup de produits de tiers que vous pouvez utiliser, comme ComponentArt http://www.componentart.com/

Réponse Edited:

Utilisez simplement un DataGridView. Je suis sûr que tous les éléments peuvent être stylés comme vous le souhaitez.

S'il s'agit d'une page Web, vous pouvez simplement créer une table en utilisant html et css.

+0

D'autres idées? – Crossfire

+0

Je pense que votre seule approche réaliste est d'utiliser le contrôle DataGridView fourni avec .net et de jouer avec le style, ou de construire une table en HTML si c'est pour une page Web. –

0

Devrait être possible ... mais n'est certainement pas facile (au moins pour moi).

Je suis en train de faire avec une liste personnalisée (ajouté des fonctionnalités et de nouvelles propriétés) par moi-même, mais je n'ai aucune expérience avec le dessin personnalisé. Ce que je sais, c'est que vous devez faire un dessin personnalisé complet pour un résultat comme sur la photo. J'ai essayé le dessin personnalisé une fois parce que je voulais alterner les couleurs d'arrière-plan, les lignes de quadrillage personnalisées et la couleur, mais aussi une couleur de surbrillance, mais j'avais abandonné pour l'instant. décidé que j'utilise le style par défaut pour le moment dans mon application. J'ai obtenu l'arrière-plan alternatif pour les lignes fonctionnant en raison d'une approche différente (déclenchement d'un événement personnalisé en utilisant un ListViewItemCollection modifié) mais je veux toujours avoir une grille personnalisée un jour.

Je n'ai jamais utilisé un DataGridView jusqu'à maintenant, donc je ne peux rien dire à ce sujet mais je pense qu'il devrait être possible d'étendre une liste de visualisation pour faire ce que vous voulez (en fonction des fonctionnalités requises). Un bon point de départ devrait être d'hériter d'une liste, de la définir sur OwnerDraw et de jouer avec les événements associés (OnDrawColumnHeader, OnDrawSubItem, OnDrawItem).

Vous pouvez également jeter un oeil à "ObjectListView", un projet Open-Source avec une liste très étendue. Je n'ai pas réussi à le faire fonctionner car j'utilise VB-Net Express.