Comment puis-je ajouter à une colonne spécifique dans l'élément Listview?
- Je créer une liste et le nombre de colonnes sont déterminés au moment de l'exécution. J'ai lu des textes sur le web partout sur listview( et je le suis toujours) mais je voudrais savoir comment ajouter des éléments à une colonne spécifique dans listview j'ai pensé à quelque chose comme:
m_listview.Items.Add("1850").SubItems.Add("yes");
serait de travailler en supposant que le "1850" qui est le texte de la colonne est la colonne cible.
OriginalL'auteur Dark Star1 | 2009-08-10
Vous devez vous connecter pour publier un commentaire.
ListViewItems n'êtes pas conscient de votre ListView colonnes.
Afin de faire directement référence à la colonne, vous devez d'abord ajouter toutes les colonnes de la ListViewItem.
Donc... disons que votre ListView a trois colonnes A, B et C;
Ce bit suivant de code ne fera qu'ajouter des données à la colonne A:
De l'obtenir pour ajouter du texte à la colonne C, nous avons d'abord besoin de lui dire qu'il a une colonne de B...
Alors maintenant nous allons avoir des colonnes A, B et C dans le ListViewItem, et le texte figurant dans l'Un et C colonnes, mais pas le B.
Enfin... maintenant que nous vous AVONS dit il y a trois colonnes, nous pouvons faire ce que nous avons, comme à ceux des colonnes spécifiques...
espère que ça aide!
hehe, vous êtes les bienvenus... nous étions tous les noobs une fois 🙂
Super réponse! merci! Citation merveilleuse de Sk93, "Nous avons tous été noob une fois", Très inspirant et motivant! 🙂
OriginalL'auteur Sk93
Je suis usially hériter ListViewItem :
où
à l'aide de
OriginalL'auteur Chernikov
ListViews ne prennent pas en charge la liaison de données et fortement typé de nommage. Je recommande d'envisager l'aide d'un DataGridView à la place. Selon ce que vous souhaitez, il peut vous sauver de quelques points de santé mentale.
Chernikov a joliment mis en œuvre pour rendre les choses un peu plus saine.
OriginalL'auteur Kenny Mann
C'est ce que je fais, car les colonnes sont ajoutées au moment de l'exécution par les utilisateurs de préférence.
Je suis l'aide d'une listView pour afficher des informations à partir d'une base de données à l'utilisateur. ( Je devrais probablement utiliser la grille de données, mais quand j'ai d'abord réalisé le programme DataGrid n'ont pas construit en pleine ligne et j'ai été trop grand d'un newb de passer par le contrôle personnalisé des exemples que j'ai trouvé)
L'utilisateur sélectionne les colonnes souhaitez voir apparaître sur le total, quelle est la largeur, et le texte du titre.
J'ai créé un utilisateur tableau de préférences que les informations enregistrées sur les colonnes à ajouter
J'ai aussi fait une classe
ColumnPreferences
et ajout d'une propriété pour chacune de ces colonnesUtilisé DataReader pour faire
List<ColumnPreferences>
Je trier cette liste en fonction d'affichage de l'index, afin que je puisse parcourir dans l'ordre les colonnes sont affichées.
Je fais une instruction if vérifie si le prochain choix dans les préférences est visible.
Si elle est puis-je ajouter de la colonne à l'aide de
ListView1.Columns.Add(ColumnName, ColumnText, ColumnWidth);
À ce point, les colonnes sont toutes, sauf dans le cas où l'utilisateur fait glisser autour de je fais le contraire. Je itérer sur toutes les colonnes dans la liste.les colonnes et économiser de l'affichage de la colonne de l'index et de la largeur de la colonne en arrière dans mes préférences de l'utilisateur table
Lors du chargement des données réelles de la table que j'utilise cette même liste de préférences de la colonne pour vérifier si je doit afficher les données.
il est de nouveau triés par affichage de l'index, je vérifie si elle est visible, si ce n'est pas que je peux sauter et aller à la prochaine
s'il est visible-je utiliser
myDataReader[ ColumnPreference.ColumnName ]
de chercher la approprate ordinale pour les données que je veux.Je viens de l'ajouter à chacune de ces résultats, dans l'ordre, pour une vue de liste de l'élément /les points puis les ajouter à la liste
OriginalL'auteur EdmondJ
OriginalL'auteur satya
Quelque chose comme ça peut-être?
L'indice 0 est l'élément principal. Indice 1 > sont les sous-items.
dark star, vous avez besoin pour passer à la vue du rapport et insérez la deuxième colonne de la première (lv.Les colonnes.Ajouter, je suppose). Note qu'un contrôle Listview considère la totalité d'une ligne dans la vue de rapport comme un seul "Point", la fonctionnalité pour les sous-éléments est limitée.
Putain ce que c'est moche... Il doit y avoir une meilleure solution.
OriginalL'auteur Jesper Palm