Используя ваш существующий код в качестве примера, вы можете проанализировать текст с кнопки в правильное значение перечисления (предполагая, что значение Text
является известной строкой перечисления цвета), используя статический метод Enum.TryParse
, который пытается проанализироватьстрока для перечисления.Если анализ выполнен успешно, он возвращает true
и устанавливает для параметра out
проанализированное значение:
Color selectedColor;
if (Enum.TryParse((sender as Button).Text, out selectedColor))
{
Colour1.BackColor = selectedColor;
}
Если вы уверены, что свойство Text
всегда будет действительным цветом (что вы должны быть, так как вы управляете им), то вы можете уменьшить это до одной строки, используя статический метод Enum.Parse
, который принимает тип enum для возврата и строковое значение для анализа:
Colour1.BackColor = Enum.Parse(typeof(Color), (sender as Button).Text);
В качестве альтернативы, вместо использования свойства Text
, вы можете использовать сам задний цвет кнопки, чтобы присвоить значение (при условии, что вы установили для него тот же цвет, что и у текста):
Color1.BackColor = (sender as Button).BackColor;