J'ai ce type d'erreur dans mon code :
La référence d'objet n'est pas définie à une instance d'un objet.
Je souhaite lire un fichier dans un listview
Merci pour vos renseignements
A+
voici mon code :
'Lecture du fichier ouvert par la boite de dialogue
Dim fs
As FileStream =
New FileStream(OpenFileDialog1.FileName, FileMode.Open)
Dim li
As ListViewItem
Dim TempString
As
StringTempString = Hex(fs.ReadByte())
If Len(TempString) < 2
ThenTempString =
"0" & TempString
End
Ifli.SubItems.Add(TempString)
A voir également:
La référence d'objet n'est pas définie à une instance d'un objet. vb.net
La référence d'objet n'est pas définie à une instance d'un objet - Meilleures réponses
La référence d'objet n'est pas définie à une instance - Meilleures réponses
Un ListView est constituer d'une collection d'items. Chacun de ces item est un ListViewItem (les lignes en mode détail)). Chacun de ces ListViewItem sont eux même constituer de l'item lui-même et éventuellement d'une collection de SubItems. L'item constitue la 1er colonne en mode détail et les subitems constitus les colonnes suivantes.
Donc dans ton cas, tu veux remplir les subitem d'un ListViewItem, mais il faut d'abord le créer. Tu as un message d'erreur parce li (ton ListViewItem) est certes déclaré, mais n'est à aucun moment créé (instancié). Il te faut quelque part le créer avec un instruction New ListViewItem. Le mieux étant de le faire lors de la déclaration Dim li
As New ListViewItem
Ensuite une fois que ton ListViewItem est rempli de tous ses SubItems, il te faudra le rajouter à la collection d'items de ton ListView pour qu'il y apparaisse.
---- Sevyc64 (alias Casy) ----# LE PARTAGE EST NOTRE FORCE #
Merci Purbonheur pour ta réponse mais mon listview est deja cree sur ma form1 avec mes entetes lignes et colonnes
et j'ai toujours rien qui s'affiche
A+
Ok, alors pourqu'elle raisons obscures tu ne rajoute pas tes données directement dans ton listview au lieu de passer par un nouveau ListViewItem comme tu essai de faire ?
Salut, quelque chose me dit que tu n'a pas lu le post de Casy.
Si tu veux remplir les colonnes de ton listview il faut que tu parcours la collection de collection d'items.
Ton listview a une propriété Items, qui est une collection d'objet. Ca représente les données dans la premiere colonne.
à chaque fois que tu fait ListView1.Items.Add(TempString) tu rajoute une ligne.
Si tu veux remplire sur une ligne, il faut que tu récupère l'objet dans la colonne précédente et que tu rajoute un objet dans sa collection subItems.
Dim fs As IO.FileStream = New IO.FileStream(OpenFileDialog1.FileName, IO.FileMode.Open)
Dim TempString As Integer
Dim SubItem As ListViewItem = Nothing
If ListView1.Items.Count > 0 Then SubItem = ListView1.Items(ListView1.Items.Count - 1)
TempString = fs.ReadByte()
If Len(TempString) < 2 Then
TempString = "0" & TempString
End If
If SubItem IsNot Nothing Then
SubItem.SubItems.Add(TempString)
Else
ListView1.Items.Add(TempString)
End If
Il faut que tu adapte l'exemple à se que tu veux faire.