Erreur : La référence d'objet n'est pas définie à une instance d'un objet.
cs_SEB73460
Messages postés271Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 novembre 2022
-
25 août 2007 à 15:15
PurBonheur
Messages postés66Date d'inscriptionsamedi 24 février 2007StatutMembreDernière intervention 7 octobre 2007
-
25 août 2007 à 21:51
Bonjour à tous,
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())
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 25 août 2007 à 16:06
Alors reprenons depuis le début.
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 #
cs_SEB73460
Messages postés271Date d'inscriptionvendredi 15 avril 2005StatutMembreDernière intervention29 novembre 2022 25 août 2007 à 16:18
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+
PurBonheur
Messages postés66Date d'inscriptionsamedi 24 février 2007StatutMembreDernière intervention 7 octobre 20071 25 août 2007 à 16:26
"mon listview est deja cree sur ma form1"
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 ?
PurBonheur
Messages postés66Date d'inscriptionsamedi 24 février 2007StatutMembreDernière intervention 7 octobre 20071 25 août 2007 à 21:51
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.