'Назначение SelectedImageIndex состоит в том, чтобы разрешить отображение другого изображения при выборе, чем то, которое установлено' ImageIndex 'для определенного узла. Чтобы сохранить эти два параметра согласованными, необходимо установить для них одинаковое значение. Это может быть сделано во время разработки или программно в зависимости от ваших потребностей.
Например, если изображения никогда не меняются, это так же просто, как установить их одновременно при добавлении нового узла в TreeView:
int myCurrentImageIndex = 0;
TreeNode node = myTreeView.Nodes.Add("new node!");
node.ImageIndex = node.SelectedImageIndex = myCurrentImageIndex;
Однако, если вы измените значение ImageIndex по какой-либо причине после его первоначального создания (например, в ответ на какое-либо действие пользователя), то вы также должны изменить SelectedImageIndex. В противном случае они станут противоречивыми.
int myNewImageIndex = 1;
node.ImageIndex = node.SelectedImageIndex = myNewImageIndex;
(Обратите внимание, что недостаточно установить их одинаковыми в обработчике события AfterSelect. Это должно быть сделано в любом месте кода, где изменяется ImageIndex.)