DataGrid Evento KeyDown

mercoledì 19 settembre 2007 - 15.14

IlCondor72 Profilo | Newbie

Ciao a Tutti

Qualcuno può dirmi perchè quando sono all'interno della datagrid non scatta
l'evento keydown ne quello della datagrid ne quello sul form su cui ho
settato keypreview = true?

Ho scritto le seguenti funzioni :

Private Sub Clienti_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
MsgBox("Clienti_KeyDown")

' Gestione Tastiera
If e.KeyValue = Keys.F1 Or Keys.F2 Or Keys.F3 Or Keys.F4 Or Keys.F5 Or Keys.F6 Or Keys.F7 Or Keys.F8 Or Keys.F9 Or Keys.F10 Or Keys.F11 Or Keys.F12 Then
FuncKeysModule(e.KeyValue)
e.Handled = True
End If
End Sub

Private Sub DataGrid1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles DataGrid1.KeyDown
MsgBox("DataGrid1_KeyDown")

' Gestione Tastiera
If e.KeyValue = Keys.F1 Or Keys.F2 Or Keys.F3 Or Keys.F4 Or Keys.F5 Or Keys.F6 Or Keys.F7 Or Keys.F8 Or Keys.F9 Or Keys.F10 Or Keys.F11 Or Keys.F12 Then
FuncKeysModule(e.KeyValue)
e.Handled = True
End If
End Sub

Public Sub FuncKeysModule(ByVal value As Keys)
Select Case value
Case Keys.F1 ' Indietro
Me.Close()
Case Keys.F2
Case Keys.F3 ' Ricerca
Try
'''''''''''''''''''''''''''''''''''''''''
' Aggiornamento DataGrid dal DataSet dal DataAdapter
'''''''''''''''''''''''''''''''''''''''''
DataView1.RowFilter = "CodiceCliente Like '" + Replace(CodiceCliente.Text, " ", "") + "' And RagioneSociale Like '" + Replace(RagioneSociale.Text, " ", "") + "' And Localita Like '" + Replace(Localita.Text, " ", "") + "' And CodiceFiscaleOPartitaIVA Like '" + Replace(CodiceFiscaleOPartitaIVA.Text, " ", "") + "'"
'''''''''''''''''''''''''''''''''''''''''
Catch Ex As Exception
End Try
Case Keys.F4
MsgBox("Keys.F4")

' Determina il Codice Cliente dal DataGrid
Dim Cursore As Integer = CInt(DataGrid1.CurrentRowIndex.ToString)
VariabiliGlobali.CodiceCliente = DataGrid1.Item(Cursore, 0)

' Chiude la Maschera
Me.ActiveForm.Close()
Case Keys.F5
Case Keys.F6
Case Keys.F7
Case Keys.F8
Case Keys.F9
Case Keys.F10
Case Keys.F11
Case Keys.F12
End Select
End Sub

Nonostante le 3 funzioni non riesco a catturare l'evento Tastieradal dataGrid.

Grazie per l'eventuale aiuto
Il Mio Sito : http://xoomer.alice.it/francescovattimo/
Il Mio Blog : http://francescovattimo.blogspot.com/

Lucifel Profilo | Junior Member

Io ho provato il tuo codice

Allora mi funziona solo se prima clicco con il mouse sulla datagrid (quindi l'oggetto selezionato è la datagrid), mentre se seleziono la form (o non seleziono niente) non funziona niente in quanto l'oggetto attivo è la mainform.

Ti conviene spostare il codice

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

sull'evento keypress (o keydown) della form

Spero ti sia servito

Ciao

Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------

Xnetus Profilo | Junior Member

E' meglio se utilizzi l'evento KeyPress.
Per ulteriori chiarimenti: http://support.microsoft.com/kb/326442/it

Ciao.

IlCondor72 Profilo | Newbie

Ragazzi vi ringrazio tantissimo.

Provo subito le proposte e vi dico.

Il Mio Sito : http://xoomer.alice.it/francescovattimo/
Il Mio Blog : http://francescovattimo.blogspot.com/

IlCondor72 Profilo | Newbie

Ciao Ragazzi

Ho cambiato il Codice gestendo il KeyPress.
Ho provato ache a ripurirlo

Ho provato il codice ma purtroppo all'interno del dataGrid, funzionano tutti i tasti tranne che 'ESC' ed i tasti funzione.

Provo a inviare il Codice.

Campagne --> Form
DataGrid1 --> Oggetto Tabella
Column1 --> Colonna Oggetto Tabella.

Il metodo KeyPreviewdel DataGrid è associato alla colonna e non non al DataGrid stesso.

'''''''''''''''''''''''''''''''''''''''''
' Colonne Virtuali per la Gestione Tastiera del DataGrid
'''''''''''''''''''''''''''''''''''''''''
Friend WithEvents Column1 As TextBox
Friend WithEvents Column2 As TextBox
Friend WithEvents Column3 As TextBox
Friend WithEvents Column4 As TextBox
Friend WithEvents Column5 As TextBox
Friend WithEvents Column6 As TextBox
Friend WithEvents Column7 As TextBox
Friend WithEvents Column8 As TextBox
'''''''''''''''''''''''''''''''''''''''''

'''''''''''''''''''''''''''''''''''''''''
' Creazione delle Colonne Virtuali per la Gestione Tastiera del DataGrid
'''''''''''''''''''''''''''''''''''''''''
Dim TempColumn As New DataGridTextBoxColumn

TempColumn = DataGrid1.TableStyles("Campagne").GridColumnStyles(0)
Column1 = TempColumn.TextBox

TempColumn = DataGrid1.TableStyles("Campagne").GridColumnStyles(1)
Column2 = TempColumn.TextBox

TempColumn = DataGrid1.TableStyles("Campagne").GridColumnStyles(2)
Column3 = TempColumn.TextBox

TempColumn = DataGrid1.TableStyles("Campagne").GridColumnStyles(3)
Column4 = TempColumn.TextBox

TempColumn = DataGrid1.TableStyles("Campagne").GridColumnStyles(4)
Column5 = TempColumn.TextBox

TempColumn = DataGrid1.TableStyles("Campagne").GridColumnStyles(5)
Column6 = TempColumn.TextBox

TempColumn = DataGrid1.TableStyles("Campagne").GridColumnStyles(6)
Column7 = TempColumn.TextBox

TempColumn = DataGrid1.TableStyles("Campagne").GridColumnStyles(7)
Column8 = TempColumn.TextBox
'''''''''''''''''''''''''''''''''''''''''

#Region " Gestione Tastiera "
Private Sub Campagne_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
MsgBox("Campagne_KeyPress")

If e.KeyChar = ChrW(Keys.Escape) Then
MsgBox("Campagne_KeyPress Keys.Escape")
ClickEventEsci(Esci, e)
End If
If e.KeyChar = ChrW(Keys.Enter) Then
MsgBox("Campagne_KeyPress Keys.Enter")
ClickEventRicerca(Esci, e)
End If
End Sub

Private Sub DataGrid1_KeyPress(ByVal sender As Object, ByVal e As
System.Windows.Forms.KeyPressEventArgs) Handles Column1.KeyPress,
Column2.KeyPress, Column3.KeyPress, Column4.KeyPress, Column5.KeyPress,
Column6.KeyPress, Column7.KeyPress, Column8.KeyPress
MsgBox("DataGrid1_KeyPress")

If e.KeyChar = ChrW(Keys.Escape) Then
MsgBox("DataGrid1_KeyPress Keys.Escape")
ClickEventEsci(Esci, e)
End If
If e.KeyChar = ChrW(Keys.Enter) Then
MsgBox("DataGrid1_KeyPress Keys.Enter")
ClickEventRicerca(Esci, e)
End If
End Sub
#End Region

Purtroppo il DataGrid continua a gestire solo i Tasti Standard e non quelli funzione.

Quando sono sul DataGrid non scatta mai il suo evento KeyPress quando lo premo.

Grazie anora per l'interessamento.

Il Mio Sito : http://xoomer.alice.it/francescovattimo/
Il Mio Blog : http://francescovattimo.blogspot.com/
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