Potrzebuję dokopać się za pomocą kodu do pewnych miejsc w TreeView. Kodzik:
private void button2_Click(object sender, EventArgs e)
{
foreach (TreeNode tn in tvMain.Nodes)
{
if (tn.Text == "Test1")
{
tn.Expand();
}
}
foreach (TreeNode tn2 in tvMain.Nodes[26].Nodes)
{
if (tn2.Text == "Test2")
{
richTextBox1.Text += tn2.Text + "\n";
tn2.Expand();
}
}
}
Pierwsza pętla działa, znajduje i rozwija węzeł "Test1". Z drugą jest problem, bo w powyższej postaci po prostu nie rozwija dziecka Test1. Próbowałem np while'em czekać aż tvMain.Nodes[26].Nodes.IsExpaned będzie true, ale mimo, że faktycznie jest, to następny węzeł nie jest rozwijany. W celach testowych wrzuciłem sobie MessageBox'a między pętlami, i po kliknięciu "OK" rozwijany jest "Test2". Dodam, że kolejne węzły po rozwinięciu są tworzone w czasie rzeczywistym za pomocą API. Jeśli nie da się tego naprawić w tym miejscu to wrzucę funkcję AfterExpand. Dzięki z góry.