public bool OpenFolderForSprite(int spriteNumber)
{
foreach (KeyValuePair<string, SpriteFolder> entry in _folders)
{
foreach (Sprite sprite in entry.Value.Sprites)
{
if (sprite.Number == spriteNumber)
{
folderList.SelectedNode = folderList.Nodes.Find(entry.Key, true)[0];
// the SelectedNode needs to process message loop before we
// can focus to the new list of sprites
if (_timer == null)
{
_timer = new Timer();
_timer.Interval = 50;
_timer.Tick += new EventHandler(_timer_Tick);
_timer.Tag = spriteNumber;
_timer.Start();
}
return true;
}
}
}
return false;
}