1- hata vermesinin sebebi keychar karkter türünden yani tek bir karakter alır. çift tırnaklı ifade ise birden fazla karakter içerebilir o yüzden olmaz. ama illa yapmak istiyorsan

(e.KeyChar.ToString() == "-") şekline yapbilirsin

2- enter için de şunları deneyebilirsin

if (e.KeyChar == (char)Keys.Enter)
ya da
if (e.KeyChar == '\r')

ya da
if (e.KeyChar == 13)


13, enter ın asci karşılığıdır. r ise enter anlamınadır. özel olduğunu belirtme için r nin önünde slash var