2010-09-22 6 views
2

Je suis en train d'accéder aux données de la vue de la liste en utilisant le nom de columnheader mais je reçois des erreursComment accéder au sous-élément ListView par clé?

LVProduct.FocusedItem.SubItems("Name").Text 

Alors, comment utilisez-vous la fonction avec les paramètres de chaîne? Je ne veux pas utiliser l'index il est trop confus

Répondre

8

Lorsque vous créez les sous-éléments, vous devez définir la propriété Nom à celui de la colonne dans laquelle il réside. L'accesseur [...] recherche le champ Nom dans la classe ListViewSubItem.

Sans cet ensemble, l'opération de texte ["Nom"] .vous exécutez renvoie une erreur de type pointeur nul.

Ou, pour le dire autrement, la recherche par clé ne recherche pas par nom de colonne. Il recherche en fonction de la valeur que vous définissez dans SubItem.Name lorsque vous créez le sous-élément.

+0

https://social.msdn.microsoft.com/Forums/windows/en-US/b96f9fbe-e128-4b49-833d-2a5f6e678dae/access-listview-subitem-text-by-column-header?forum=winforms –

+0

Étrange ... je reçois une chaîne vide quand je messagebox le .Name des SubItems ou ColumnHeaders. –

-1

Votre supposé utiliser C# "indexer". Vous devez appeler l'aide de supports sqare:

LVProduct.FocusedItem.SubItems["Name"].Text 

Si vous voulez en savoir plus sur indexeur, regardez this link on MSDN

+0

Salut le poste est marqué comme VB –

+0

Désolé, mes excuses ... quelle erreur obtenez-vous? –

1

Lors de la création des sous-éléments, vous devez définir la propriété name. Par exemple:

listViewItem.SubItems.Add(
    New ListViewSubItem With {.Name = "Name", .Text = "yes"} 
) 

Ensuite, vous pouvez utiliser votre code existant:

LVProduct.FocusedItem.SubItems("Name").Text 
12

Si vous êtes désireux d'obtenir le sous-élément basé sur une colonne, c'est la meilleure façon.

LVProduct.FocusedItem.SubItems(columnHeader1.Index).Text 

columnHeader1 serait le nom de la ColumnHeader vous êtes désireux de le sous-élément.

+0

Belle solution. Malheureusement, je ne peux pas donner plus d'un upvote. – prabhakaran

Questions connexes