I think you need to override OnKeyDown in the renderer class and activate the cell there if it is not already active. Below is a try at this.
protected override void OnKeyPress(KeyPressEventArgs e)
{
bool controlKeyDown = (Control.ModifierKeys & Keys.Control) != Keys.None;
bool menuKeyDown = (Control.ModifierKeys & Keys.Alt) != Keys.None;
if (!e.Handled && !controlKeyDown && !menuKeyDown)
{
if (!Char.IsControl(e.KeyChar)
&& !IsReadOnly() // cell is not readonly
&& SupportsFocusControl) // OnStartEditing notification returns true
{
if (!CurrentCell.HasControlFocus )
{
if (this.ValidateString(e.KeyChar.ToString())
&& CurrentCell.BeginEdit())
{
CurrentCell.HasControlFocus = true;
if (this.NotifyCurrentCellChanging())
{
CurrentCell.IsModified = true;
CurrencyTextBox.Text = e.KeyChar.ToString();
CurrencyTextBox.SelectionStart = 1;
CurrencyTextBox.SelectionLength = 0;
}
}
e.Handled = true;
}
}
}
base.OnKeyPress(e);
}