Если вы работаете с Visual C # 3.0 или выше, я считаю удобным просто расширить класс enum и использовать регулярное выражение для вставки пробелов, где это необходимо:
public static class EnumExtension
{
public static String ToDisplayString(this Enum e)
{
Regex regex = new Regex(@"([^\^])([A-Z][a-z$])");
return regex.Replace(e.ToString(), new MatchEvaluator(m =>
{
return String.Format("{0} {1}", m.Groups[1].Value, m.Groups[2].Value);
}));
}
}
Обратите внимание, что это позволяет работать с любым перечислением без добавления описания к каждому значению.
String enumWithSpaces = MessageBoxButtons.OKCancel.ToDisplayString();