[ kopca @ 04.02.2005. 09:17 ] @
vb.net sql server
Imam klasu koja nasledjuje obican datagrid u kojem na Enter keyboard ulaz preprocesoram od strane forme i posaljem {down}. To mi je noephodno.
Evo koda:
Code:

Public Class DataGridKeyEvents
    Inherits System.windows.Forms.DataGrid
    'Private Const WM_KEYDOWN = &H100
    'Private Const WM_KEYUP = &H101

    
    Private pLastRowState As System.Data.DataColumnChangeEventArgs
    Private pLastRowIndex As Integer

    Public Property LastRowState() As System.Data.DataColumnChangeEventArgs
        Get
            Return pLastRowState
        End Get
        Set(ByVal Value As System.Data.DataColumnChangeEventArgs)
            pLastRowState = Value
        End Set
    End Property

    Public Property LastRowIndex() As Integer
        Get
            Return pLastRowIndex
        End Get
        Set(ByVal Value As Integer)
            pLastRowIndex = Value
        End Set
    End Property

    Public Event Before_Keyboard_Input(ByVal keyCode As Integer)


    Protected Overrides Function ProcessCmdKey(ByRef msg _
    As System.Windows.Forms.Message, ByVal keyData As _
    System.Windows.Forms.Keys) As Boolean
        Dim keyCode As Integer

        keyCode = CInt(msg.WParam.ToInt32())
        'ako je poruka poslata procesu sa parametrim 'Enter' keyboard ulaza, poslacemo 'Tab' i sa true reci da smo obradili dogadjaj
        If keyCode = CInt(Keys.Enter) Then
            'forma koja sadrzi grid ce preprocesirati 'Enter' ulaz u 'tab'
            Me.Parent.PreProcessMessage(msg)


            'okidamo dogadjaj da bi smo u gridu bili svesni koji je to keyboard ulaz u pitanju
            RaiseEvent Before_Keyboard_Input(keyCode)

            'Ovde saljemo keyboard ulaz 'Tab'
            SendKeys.Send("{Down}")
            Return True

            'inace radimo default keyboard ulaz obradu
        Else


            RaiseEvent Before_Keyboard_Input(keyCode)

            Return MyBase.ProcessCmdKey(msg, keyData)

        End If
    End Function 'ProcessCmdKey 

End Class


U svakoj formi u kojoj imam taj grid koristim sledeci kod u 'CurrentCellChanged' handler-u:
Code:

Private Sub grdZaposleni_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles grdZaposleni.CurrentCellChanged
            ..........
            ..........
            grdZaposleni.LastRowState = Nothing
            grdZaposleni.LastRowIndex = grdZaposleni.CurrentRowIndex
End Sub


Interesuje me da li je moguce deo koda
Code:

grdZaposleni.LastRowState = Nothing
grdZaposleni.LastRowIndex = grdZaposleni.CurrentRowIndex


staviti u neki overrides metod slicno kao i 'ProcessCmdKey.' Hocu da pretabam metod 'CurrentCellChanged' da mi radi sve kao i obicno ali da poziva i ove dve linije koda na kraju. Kako se poziva metod roditeljske klase, verovatno je to ono sto mi treba...
[ Mrav @ 05.02.2005. 00:34 ] @
roditeljsku klasu pozivaš sa base .

Znači base.Metod() iz klase dete.