Gestire l'evento KeyPress in una cella DataGridView

mercoledì 17 settembre 2014 - 16.58
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  .NET 3.0  |  .NET 3.5  |  Visual Studio 2010  |  Visual Studio 2008  |  Visual Studio 2005

dommyone Profilo | Newbie

Ciao a tutti,sto provandoa gestire l'evento keypress all'interno di una cella. Ho provato a gestire l'evento EditingControlShowing.

Private Sub GRID_EditingControlShowing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles TabAssegna.EditingControlShowing

If Me.GRID.CurrentCell.ColumnIndex = 0 Then
AddHandler e.Control.KeyDown, AddressOf cell_KeyDown
End If

End Sub

Private Sub cell_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs)
If e.KeyCode = Keys.F2 Then
MessageBox.Show("OK")
End If
End Sub

Con questo codice se premo F2 all'interno della terza cella ad esempio compare 3 volte la messagebox.
Grazie.

0v3rCl0ck Profilo | Guru

devi rimuovere l'handler prima di aggiungerlo, altrimenti succede quel fattaccio, perchè in realtà l'evento EditingControlShowing viene lanciato più volte, prova così:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

dommyone Profilo | Newbie

Grazie 1000 funziona proprio come volevo.

0v3rCl0ck Profilo | Guru

bene, alla prossima


Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic
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