If you don't have to use structs and can use classes. I would suggest the polymorphism approach of:
public interface ICanDoStuff
{
void DoStuff();
}
public class OnOfMyTagClasses : ICanDoStuff
{
public void DoStuff()
{
//Do some stuff
}
}
((ICanDoStuff)aTreeNode.Tag).DoStuff();
Instead of using a switch-case.