Take the 2-minute tour ×

For a project I need a tree view that allows the user to select a module, which then is displayed in a content area. The project relies heavily on localization and this is provided by the resource files.

Now I discovered today, that the text that are assigned to preset tree view nodes are not contained in the resource files.

So the question is whether there is a way of doing this, short of mapping the elemenst in code. I.e. assigning a name to the node, running over all nodes and pulling the resources from the resouce manager based on the node name.

This is what I am currently doing, however, it just doesn't "feel" right:

private void TranslateNodes(TreeNodeCollection treeNodeCollection) {
    var rm = Resources.ResourceManager;
    foreach (TreeNode node in treeNodeCollection) {
        node.Text = rm.GetString(node.Name + "_Text");


share|improve this question
add comment

2 Answers

Your approach looks ok for me, with one exception, it believes that node.Name is unique though entire treeview (which is not correct in general case).

You can use TreeNode.FullPath for unique identify node within treeview. Or alternatively your code can depend on node tag value, but this is highly depend on usage scenario.

And do not forget about calling TreeView's BeginUpdate-EndUpdate.

share|improve this answer
The question was whether there is another (better) approach. And ... yes I know that the name of the node does not have to be unique, but in my case it is. So sadly not enough for acceptance ... –  Obalix Apr 10 '10 at 10:50
add comment
up vote 0 down vote accepted

No suitable, solution found except the one statete in the op ... so closing the question seems apropriate.

share|improve this answer
add comment

Your Answer


