[ 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... |