protected override void OnKeyDown( KeyEventArgs e )
{
base.OnKeyDown( e );
if ( FieldKeyPressedEvent != null )
{
KeyPressEventArgs args = new KeyPressEventArgs( Convert.ToChar( e.KeyCode, CultureInfo.InvariantCulture ) );
FieldKeyPressedEvent( this, args );
}
switch ( e.KeyCode )
{
case Keys.Home:
SendCedeFocusEvent( Action.Home );
return;
case Keys.End:
SendCedeFocusEvent( Action.End );
return;
}
if ( IsCedeFocusKey( e ) )
{
SendCedeFocusEvent( Direction.Forward, Selection.All );
e.SuppressKeyPress = true;
return;
}
else if ( IsForwardKey( e ) )
{
if ( e.Modifiers == Keys.Control )
{
SendCedeFocusEvent( Direction.Forward, Selection.All );
return;
}
else if ( SelectionLength == 0 && SelectionStart == TextLength )
{
SendCedeFocusEvent( Direction.Forward, Selection.None );
return;
}
}
else if ( IsReverseKey( e ) )
{
if ( e.Modifiers == Keys.Control )
{
SendCedeFocusEvent( Direction.Reverse, Selection.All );
return;
}
else if ( SelectionLength == 0 && SelectionStart == 0 )
{
SendCedeFocusEvent( Direction.Reverse, Selection.None );
return;
}
}
else if ( IsBackspaceKey( e ) )
{
HandleBackspaceKey( e );
}
else if ( !_valueFormatter.IsValidKey( e ) &&
!IsEditKey( e ) )
{
e.SuppressKeyPress = true;
}
}