16 messaggi dal 18 agosto 2016
Visualizzare un arraylist in un datagridview...
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Luigi, benvenuto nel forum!
Puoi far vedere il codice che usi per riempire l'ArrayList e poi metterlo in binding con la griglia?

ciao,
Moreno
Modificato da BrightSoul il 18 agosto 2016 19.57 -

Enjoy learning and just keep making
16 messaggi dal 18 agosto 2016
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim lista As New ArrayList
lista.Add("ikkyo")
lista.Add("nikkyo")
lista.Add("sankyo")
Me.DataGridView1.DataSource = lista
End Sub
Modificato da luigi.ghiselli il 18 agosto 2016 22.54 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Luigi,
sì, è normale che faccia così perché la DataGridView è un controllo che visualizza una griglia di dati in cui, ogni colonna, rappresenta una proprietà pubblica degli oggetti che gli hai assegnato come DataSource.

In questo caso, trattandosi di stringhe, il DataGridView legge la proprietà Length di ogni stringa e visualizza quella, anziché l'oggetto stesso.

Per risolvere il problema, potresti o usare una ListBox, che invece è pensata per visualizzare una lista di elementi, oppure aggiungere all'ArrayList oggetti di un tuo tipo in cui magari hai definito una proprietà "Testo" che restituisce la stringa che vuoi visualizzare.

Non è prioritario ora ma, quando hai tempo dai un'occhiata ai "Generics" di .NET
https://msdn.microsoft.com/it-it/library/ms172192(v=vs.110).aspx
E' una funzionalità del linguaggio importante da conoscere. Ti permettono di sostituire il tuo ArrayList con una List<string> (ad esempio), in modo che le tue collezioni siano fortemente tipizzate.

ciao,
Moreno

Enjoy learning and just keep making
16 messaggi dal 18 agosto 2016
Ho già provato creando una classe con proprietà ma il grid ora è vuoto...se riesco ti mando anche quel codice...
16 messaggi dal 18 agosto 2016
Codice form1

Imports System
Imports System.Collections
Imports Microsoft.VisualBasic
Public Class Form1
Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Dim lista As New ArrayList
lista.Add(New waza("ikkyo"))
lista.Add(New waza("nikkyo"))
lista.Add(New waza("sankyo"))
Me.DataGridView1.DataSource = lista
End Sub

End Class

Codice classe

Public Class waza
Private ttecnica As String
Public Sub New(ByVal ttecnica)
ttecnica = tecnica
End Sub
Public Property tecnica() As String
Get
Return ttecnica
End Get
Set(ByVal value As String)
ttecnica = value
End Set
End Property

End Class
16 messaggi dal 18 agosto 2016
Amico informatico mi ha dato il codice giusto...grazie comunque
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
c'era un errore di digitazione qui:
Public Sub New(ByVal ttecnica)

Non è ttecnica ma tecnica. A causa di questo, la proprietà tecnica restituiva stringa vuota.

ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.