DataGrid e KeyPress, un tip targato SMAU

Ecco qui un tip targato SMAU. "Come possibile intercettare il keypress di una cella di una datagrid?"... Bella domanda... ci lavoro anche pooco con le windows application :o Aiutato da giovanni - piu abituato a muoversi con apllicazioni desktop - ecco qui il tip che ne è uscito... questa è la bozza di codice in VB.Net da cui partirò per ricavare un tip da pubblicare ufficialmente!

Prima di tutto: sia una Form e una DataGrid che con sforzo di fantasia chiameremo Form1 e Datagrid1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '//Creazione e inizializzazione statica del dataset.
        Dim ds As DataSet = New DataSet()
        Dim dt As DataTable = ds.Tables.Add("Test")
        dt.Columns.Add("ColonnaUno")
        dt.Columns.Add("ColonnaDue")
        dt.Rows.Add(New Object() {"uno", "pippo"})
        dt.Rows.Add(New Object() {"due", "pluto"})
        dt.Rows.Add(New Object() {"tre", "peperino"})

        '//Creazione della DataGridTableStyle e inizializazione.
        '//le operzioni che seguono sono gestibili anche da relativo
        '//property builder.
        '//--
        Dim aDataGridTableStyle As New DataGridTableStyle()
        aDataGridTableStyle.MappingName = "Test"
        Dim aTextBoxColumn1 As New DataGridTextBoxColumn()
        aTextBoxColumn1.HeaderText = "ColonnaUno"
        aTextBoxColumn1.MappingName = "ColonnaUno"
        aDataGridTableStyle.GridColumnStyles.Add(aTextBoxColumn1)
        Dim aTextBoxColumn2 As New DataGridTextBoxColumn()
        aTextBoxColumn2.HeaderText = "ColonnaDue"
        aTextBoxColumn2.MappingName = "ColonnaDue"
        aDataGridTableStyle.GridColumnStyles.Add(aTextBoxColumn2)
        DataGrid1.TableStyles.Add(aDataGridTableStyle)
        '//--

        '//Recupeo DataGridTableStyle di cui voglio intercettare
        '//il keypress delle celle.
        Dim TheDataGridTableStyle As DataGridTableStyle
        TheDataGridTableStyle = DataGrid1.TableStyles.Item("Test")
        '//Ciclo su colonne della DataGridTableStyle e imposto gli handler per
        '//l'evento KeyPress delle le colonne che mi interessano.
        Dim aDataGridColumnStyle As DataGridColumnStyle
        Dim aDataGridBoolColumn As DataGridBoolColumn
        For Each aDataGridColumnStyle In aDataGridTableStyle.GridColumnStyles()
            Dim aDataGridTextBoxColumn As DataGridTextBoxColumn
            If TypeOf aDataGridColumnStyle Is DataGridTextBoxColumn Then
                aDataGridTextBoxColumn = DirectCast(aDataGridColumnStyle, DataGridTextBoxColumn)
                AddHandler aDataGridTextBoxColumn.TextBox.KeyPress, _
                    AddressOf Me.DataGrid1TextBoxColumn_KeyPress
            End If
        Next
        '//Imposto dataset come datasource della griglia.
        DataGrid1.DataSource = ds.Tables(0)

    End Sub

    Private Sub DataGrid1TextBoxColumn_KeyPress( _
               ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs)

        Dim c As Integer = DataGrid1.CurrentCell.ColumnNumber
        Dim r As Integer = DataGrid1.CurrentCell.RowNumber
        Dim columnName As String = DataGrid1.TableStyles("Test").GridColumnStyles(c).MappingName
        Dim t As TextBox = DirectCast(sender, TextBox)
        MessageBox.Show(String.Format( _
                "KeyPress on TextBoxColumn Item({0},{1}): columnName: {2}, columnValue: {3}, tasto premuto: '{4}'", _
                 r, c, columnName, t.Text, e.KeyChar))
    End Sub

Mi rimane un quesito: "Come intercettare - se ha senzo farlo - gli eveventi di una DataGridBooleanColumn?"
Le DataGridBooleanColumn sono quelle colonne con la CheckBox :o

Bah a prima vista non ho trovato soluzioni...

Un bel WE @ SMAU

Proprio un bel WE quello che passato in SMAU... sabato un bel po di gente che girava tra gli stand, domanica un po meno forse.
Allo stand di UGI è stato piacevole chiaccherare e conoscere con chi solitamente si incontra solo via post del forum :D Qundi un grazie ai fratelli Carucci, Davide Senatore, Lawrence, Raffaele Rialdi  e tanti altri che sono passati anche solo a salutarci ..e un grazie in piu al buon Giovanni d'Ariezzo che è stato con noi - e ci ha sopportato ;p - per tutti i giorni della fieri aiutandoci a seguire lo stand!

Wow quest'anno SMAU proprio piaciuta :D
«ottobre»
domlunmarmergiovensab
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678