Newsgroup: it.comp.lang.visual-basic
Titolo: [VB.NET] DataGridView Mi arrendo!!! Sono troppo stupido per capirla :-(

Devo ammetterlo. Non sono capace di imparare ad usare il controllo
DataGridView. Sono bloccato su una stupidaggine da giorni e non riesco
a capire cosa non ho capito, scusate il gioco di parole, stupido
anch'esso, quindi in linea ah ah ah :-(
In sintesi: dato un form con una datagridview, al doppio click su una
riga si apre un form che permette di modificare i dati, salvarli,
quindi chiudere il form. I dati vengono correttamente salvati, ma la
datagridview non si aggiorna.
Per favore, aiutatemi. E' una cosa certamente banalissima, ma io
proprio non riesco a capirla.
Qui il codice (ridottissimo per non tediarvi troppo).
Public Class FormPadre
  Private Sub ClientiBindingNavigatorSaveItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ClientiBindingNavigatorSaveItem.Click
    Me.Validate()
    Me.ClientiBindingSource.EndEdit()
    Me.TableAdapterManager.UpdateAll(Me.Eva_2010DataSet)
  End Sub
  Private Sub FormPadre_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
    Me.ClientiTableAdapter.Fill(Me.Eva_2010DataSet.Clienti)
  End Sub
  Private Sub ClientiDataGridView_CellContentDoubleClick(ByVal sender
As System.Object, ByVal e As
System.Windows.Forms.DataGridViewCellEventArgs) Handles
ClientiDataGridView.CellContentDoubleClick
    With FormFiglio
      .ClientiBindingSource.Filter = "ID_Cliente=" &
CInt(ClientiDataGridView(0, e.RowIndex).Value)
      .Show()
    End With
  End Sub
End Class
Public Class FormFiglio
  Private Sub ClientiBindingNavigatorSaveItem_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles
ClientiBindingNavigatorSaveItem.Click
    With Me
      .Validate()
      .ClientiBindingSource.EndEdit()
      .TableAdapterManager.UpdateAll(.Eva_2010DataSet)
    End With
    With FormPadre
      .TableAdapterManager.UpdateAll(.Eva_2010DataSet)
      .ClientiBindingSource.EndEdit()
      .TableAdapterManager.UpdateAll(.Eva_2010DataSet)
    End With
    Me.Close()
  End Sub
  Private Sub FormFiglio_Load(ByVal sender As System.Object, ByVal e
As System.EventArgs) Handles MyBase.Load
    With Me
      .ClientiTableAdapter.Fill(.Eva_2010DataSet.Clienti)
    End With
  End Sub
End Class
Grazie &H3E8, Geppino

  End Sub
NON conosco 
vb.net
 ma se aggiorni la datagrid all'evento LOAD, tale evento
non si verifica se non CHIUDI e RIAPRI il form in questione.
se esiste l'evento activate o gotfocus io metterei il codice di 
"aggiornamento"
li' dentro....
alla peggio, io su VB6 metto un bottone (che normalmente e' private) e
lo definisco come public, chiamandolo dalla form che si chiude
nell'evento unload.

Una volta caricati i dati nella griglia, hai una copia della tabella in 
quell'istante.
Quindi se fai delle modifiche, inserimenti o cancellazioni, dovrai 
rieseguire il Fill
Ciao, Vincenzo 


E' precisamente quello che faccio con il pulsante Save del
BindingNavigator, cioè lancio il metodo
Me.TableAdapterManager.UpdateAll(Me.Eva_2010DataSet), ma evidentemente
non è così che va fatto.
Comunque grazie dell'interessamento.



Ecco cosa non avevo capito. Adesso funziona, anche se mi perde la
posizione del cursore.
Grazie.

 Grazie.
Prego.
Ciao, Vincenzo