Как отметили комментаторы, в ваших узлах, скорее всего, отсутствует имя, которое является ключом , используемым при поиске строкового индекса.Это легко осуществить, поскольку большинство узлов создаются во время выполнения.
Простой способ добавить имя:
myParent.Nodes.Add(new TreeNode("BRL/USD") { Name = "BRL/USD" });
myParent.Nodes.Add(new TreeNode("EUR/USD") { Name = "EUR/USD" });
Тогда ваш код должен работать:
if (tnParent.Nodes.ContainsKey("EUR/USD"))
tnParent.Nodes["EUR/USD"].Checked = true;
Вы должнывероятно, используйте ту же логику в вашем if
условии, чтобы вы меньше зависели от свойства text, которое действительно следует использовать только для целей отображения:
if ((e.Node.Name == "BRL/EUR") ...
Если не задавать имена, то вы быпридется искать дерево узлов самостоятельно, чтобы найти «текст»:
TreeNode found = tnParent.Nodes.OfType<TreeNode>().Where(x => x.Text.Contains("EUR/USD")).First();
if (found != null)
found.Checked = true;