Tasto Invio su Datagridviewer

lunedì 18 maggio 2009 - 10.13

dvd75 Profilo | Newbie

Ho una griglia con un elenco, dalla quale premendo Invio si apre un form di dettaglio, che recupera dalla griglia un ID che poi mi filtra nella form di dettaglio, ora tutto mi funziona tranne che, non appena premo Invio sulla griglia la selezione non mi resta dove inizialmente mi ero posizionato con il mouse, ma passa alla riga successiva e dunque visualizzo il dettaglio di quest'ultima.

Premesso: La griglia è di sola lettura e a selezione completa di tutta la riga l'ID è nella prima colonna ovviamente nascosta

Grazie a chi risponde :)

alexmed Profilo | Guru

Ciao David
Facci vedere un pò di codice

Ciao

alexmed

dvd75 Profilo | Newbie

Ciao ecco quà

Private Sub dgElencoLavori_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dgElencoLavori.KeyUp

If e.KeyData = Keys.Enter Then
DettaglioLavoro()
End If

End Sub

alexmed Profilo | Guru

Ok!!

L'evento _KeyUp viene generato al rilascio del tasto che in questo caso è l'Enter. Ma il tasto enter in una DGV funge anche per passare alla Row sucessiva. E' questo il motivo dell' "ERRORE".

Prova così:

Private Sub DataGridView1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGridView1.KeyDown

If e.KeyData = Keys.Enter Then
DettaglioLavoro()
e.Handled = True 'questo fà si che non vada alla riga sucessiva.
End If

End Sub


Ciao



alexmed

dvd75 Profilo | Newbie

Risolto!(*)
Grazie per la velocità e la spiegazione
(*) si ovvio grazie a te

alexmed Profilo | Guru

>Risolto!
Bene!! Ma grazie a me??
>Grazie per la velocità e la spiegazione
Prego

Se hai bisogno di altro chiedi pure altrimenti chiudi il Thread cliccando su accetta

Ciao


alexmed

dvd75 Profilo | Newbie

Avrei un altro piccolo problemuccio:
Ho un DG con le celle editabili in cui ci sono 3 colonne :
la 1°)- è impostata come "DataGridViewComboBoxColumn" quindi recupero un valore da un elenco
la 2°)- Inserisco il numero dei pezzi
la 3°)- Inserisco la lunghezza dei pezzi
Ho la necessità di impedire o controllare l'immissione di determinati valori che ovviamente non siano ZERO o valori alfabetici o NULLI.

Per adesso sono solo riuscito ad impostare i valori di default a zero con questo codice :

Private Sub dgDistinta_AP_DefaultValuesNeeded(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewRowEventArgs) Handles dgDistinta_AP.DefaultValuesNeeded

'IMPOSTA VALORI DI DEFAULT
e.Row.Cells(1).Value = 0 'PEZZI
e.Row.Cells(2).Value = 0 'LUNGHEZZA

End Sub

Come faccio per il resto? Grazie ancora
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5