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