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;
}