Я ищу помощи, и, возможно, решение довольно простое, но я не могу понять. В последнее время я изучал и тестировал C#, и теперь моя проблема - простая ошибка, которую я прочитал, когда попробовал что-то, что я также нашел в Интернете.
Моя цель проста: на моей winform есть 2 метки, которые должны изменить их цвет переднего плана в зависимости от их текста. Текст может быть одним из 18 возможных вариантов (отдельные слова; это не так, но я установил ровно 18 различных слов, которые можно было бы написать на этикетках). Итак, я также поискал в Интернете и нашел что-то вроде создания словаря. Я сделал что-то вроде
Dictionary<string, int[]> word = new Dictionary<string, int[]>()
{
{"Hello", new int[] {144, 144, 153} },
{"Bye", new int[] {25, 127, 229} }
};
, затем в указанном c экземпляре / событии я написал
label1.ForeColor = Color.FromArgb(word[label1.Text[0]], word[label1.Text[1]], word[label1.Text[2]]);
, так что если (например) слово в Label1 будет "Hello" ", его передний цвет должен быть RGB со значениями сверху, что означает 3 значения int в ключе" Hello ".
Я использую Visual Studio 2019 (если я должен знать). Сообщение об ошибке гласит, что label1.text[0]
(это должен быть строковый ключ, чтобы получить значение типа int) является значением char и не может быть преобразовано в строку. Есть что-то очевидное или основополагающее в winform или метках, которые мешают этому коду работать должным образом? Я делаю что-то неправильно? (конечно да). Что мне не хватает? Я пытался изменить строку в объекте в объявлении словаря, но это не сработало, я пытался также использовать label1.text.ToString()[0]
, но все равно не сработает.
Благодарю вас за ответы!