I consider that KeyEventArgs don't have KeyChar property. You can check the
KeyEventArgs defintion as below.
public class KeyEventArgs : EventArgs
{
// Fields
private bool handled;
private readonly Keys keyData;
private bool suppressKeyPress;
// Methods
public KeyEventArgs(Keys keyData);
// Properties
public virtual bool Alt { get; }
public bool Control { get; }
public bool Handled { get; set; }
public Keys KeyCode { get; }
public Keys KeyData { get; }
public int KeyValue { get; }
public Keys Modifiers { get; }
public virtual bool Shift { get; }
public bool SuppressKeyPress { get; set; }
}
And you can try to covert key value to char, please reference the sample as below.
private string keyChar = string.Empty;
// Convert KeyValue to char
private void SomeKeyDown(object sender, KeyPressEventArgs e)
{
keyChar = (char)e.KeyValue;
}