Salve a tutti vorrei sapere se esiste un evento per il controllo Datagrid che viene interecettato quando si modifica il testo di una cella
Grazie a tutti in anticipo
Salve a tutti vorrei sapere se esiste un evento per il controllo Datagrid che viene interecettato quando si modifica il testo di una cella
Grazie a tutti in anticipo
Penso ti riferisca a questo:
Private Sub DataGrid1_BeforeColUpdate(ByVal ColIndex As Integer, OldValue As Variant, Cancel As Integer)
If MsgBox("Sei Sicuro di Voler AGGIORNARE il dato?", vbQuestion + vbYesNo, "Uscita") = vbNo Then
Cancel = 1
End If
End Sub
no non funziona, quello che intendo io è che quando l'utente va a modificare una cella del datagrid (Datagrid1) io posso interecettare questo evento e memorizzare il testo modificato nel dataset e fare altre operazioni sul testo modificato dall'utente
ho provato con l'evento CurrentCellChanged è sembra funzioni però come si fa a prelevare il testo dalla cella selezionata?
Private Sub Datagrid_CurrentCellChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataGrid1.CurrentCellChanged
Dataview1.Item( ?? riga ??).Item(?? colonna ??))
End Sub
grazie
Intendi questo?
Private Sub dataGrid_CurrentCellChanged(ByVal o As Object, ByVal e As EventArgs) Handles dataGrid.CurrentCellChanged
Dim currentCell As DataGridCell
Dim currentCellData As String
' Get the current cell.
currentCell = dataGrid.CurrentCell
' Get the current cell's data.
currentCellData = CStr(dataGrid(currentCell.RowNumber, currentCell.ColumnNumber))
' Set the TextBox's text to that of the current cell.
textBoxCurrentCell.Text = currentCellData
End Sub
Non funziona mi da questo errore
Eccezione non gestita di tipo "System.InvalidCastException" in microsoft.visualbasic.dll
Informazioni aggiuntive: Cast non valido dal tipo "DBNull" al tipo "String".
Ho provato a dirgli anche che quando è vuoto il campo di dare una stringa vuota ma niente.
Mi sai dire il perché?![]()
Grazie in anticipo.
Hai provato ad aggirare il problema mettendo nel campo della tabella un valore predefinito (di default) = 0
Ciao
MA I DATI DELLA TABELLA SONO PRELEVATI DA UN DB E A VOLTE POSSONO ESSERE VUOTI
INOLTRE HO NOTATO CHE MI RECUPERA LA CELLA CHE SELEZIONO NON QUELLA DOVE HO MODIFICATO IL TESTO.
PERCHè HO UNA TABELLA DOVE L'UTENTE PUò SCRIVERE UNA VOLTA CHE HA FINITO DI SCRIVERE DEVO PRELEVARE IL DATO CHE PUò ESSERE TESTUALE O NUMERICO
MA I DATI DELLA TABELLA SONO PRELEVATI DA UN DB E A VOLTE POSSONO ESSERE VUOTI
Io intendevo appunto a valori di default sui campi della tabella del database.
Se vuoi eventualmente prova l'istruzione try che intercetta gli errori
Try
textBoxCurrentCell.Text = currentCellData
Catch
End Try
Guarda anche nel sito di microsoft italia:
http://msdn.microsoft.com/library/it...tchFinally.asp
Ho provato anche con Try...Catch ma nulla. Il problema è che con questo evento (CurrentCellChanged) rileva il testo sulla cella dove mi sposto, e non sulla cella dove io modifico il testo.
Possibile che non cè un modo sto impazzendo![]()