L'unico evento che gestisco è quello relativo al cambio di colonna. (vedere codice)
Comunque cercherò di esporre il mio problema.
Mi creo un DataGrid di 3 Colonne.
Vorrei far si che una volta che l'utente inserisce un valore all'interno della prima colonna e, successivamente, preme il tasto "Tab", nella seconda e terza colonna compaia una determinata Stringa.
Quindi:
codice:
'Dichiariamo le variabili pubbliche
Public DataGrid1 As DataGrid
Public WithEvents tabellaDatiDocumento As DataTable
'Questa Sub mi inizializza tutti i componenti
Private Sub initComponenti()
Me.DataGrid1 = New DataGrid
Me.Controls.Add(DataGrid1)
Me.tabellaDatiDocumento = New DataTable("Documento")
'Ok, creiamo un paio di colonne
Dim colonnaDocumento As DataColumn
Dim rigaDocumento As DataRow
'Creo la colonna per il Codice
colonnaDocumento = New DataColumn
colonnaDocumento.DataType = System.Type.GetType("System.String")
colonnaDocumento.ColumnName = "Codice"
colonnaDocumento.Caption = "Codice"
tabellaDatiDocumento.Columns.Add(colonnaDocumento)
'Creo la colonna per la Descrizione
colonnaDocumento = New DataColumn
colonnaDocumento.DataType = System.Type.GetType("System.String")
colonnaDocumento.ColumnName = "Descrizione"
colonnaDocumento.Caption = "Descrizione"
tabellaDatiDocumento.Columns.Add(colonnaDocumento)
'EVITO DI SCRIVERE IL CODICE RELATIVO ALLA TERZA COLONNA...
'Il mio dataset...
Dim dataSetDocumento = New DataSet("Documento")
DataGrid1.SetDataBinding(dataSetDocumento, "Documento")
'...Imposto l'origine dei Dati...
Me.DataGrid1.DataSource = tabellaDatiDocumento
dataSetDocumento.Tables.Add(tabellaDatiDocumento)
'... e l'handler per gestire l'evento.
AddHandler tabellaDatiDocumento.ColumnChanged, AddressOf Table_CurColChange
End Sub
E adesso, la sub relativa alla gestione dell'evento:
codice:
Public Sub Table_CurColChange(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs)
Dim myRowNumber As Integer = DataGrid1.CurrentCell.RowNumber
Me.DataGrid1.Item(myRowNumber, 1) = "Stringa1"
Me.DataGrid1.Item(myRowNumber, 2) = "Stringa2"
End Sub
E non funziona!
O meglio, mettendo una delle due righe (quelle di "Stringa1" e "Stringa2") funziona (anche se si cancella il contenuto della prima colonna!), ma se le metto entrambe nisba.
Sono totalmente disperato!
Se qualcuno riesce a capire dove sbaglio, lo apprezzerei molto.