Шрифт:
tnNewNode = treeView1.Nodes.Add("Neighborhoods");
//Установить для узла метку, указывающую на то, что узел
//будет заполняться динамически
tnNewNode.Tag = node_needToBePopulated;
//Этот фиктивный дочерний узел существует лишь для того, чтобы
//узел имел, по крайней мере, один дочерний узел и поэтому
//был расширяемым.
tnNewNode.Nodes.Add(dummy_node);
//------------
//Узел "Price"
//------------
tnNewNode = treeView1.Nodes.Add("Price");
//Установить для узла метку, указывающую на то, что узел
//будет заполняться динамически
tnNewNode.Tag = node_needToBePopulated;
//Этот фиктивный дочерний узел существует лишь для того, чтобы
//узел имел, по крайней мере, один дочерний узел и поэтому
//был расширяемым.
tnNewNode.Nodes.Add(dummy_node);
//----------------
//Узел "HouseType"
//----------------
tnNewNode = treeView1.Nodes.Add("HouseType");
//Установить для узла метку, указывающую на то, что узел
//будет заполняться динамически
tnNewNode.Tag = node_needToBePopulated;
//Этот фиктивный дочерний узел существует лишь для того, чтобы
//узел имел, по крайней мере, один дочерний узел и поэтому
//был расширяемым.
tnNewNode.Nodes.Add(dummy_node);
//Восстанавливаем обновление интерфейса
treeView1.EndUpdate;
}
//-------------------------------------------------------------------------
//Обработчик событий BeforeExpand для нашего элемента управления TreeView
//ПРИМЕЧАНИЕ: Этот обработчик событий необходимо будет
// вручную подключить к функции InitializeComponent
// формы.
//
//Вызывается при запросе пользователем расширения узла, у которого имеется,
//по крайней мере, один дочерний узел. Этот вызов осуществляется до
//отображения дочерних узлов данного узла и дает нам возможность
//динамически заполнить данными элемент управления TreeView.
//-------------------------------------------------------------------------
private void TreeView1BeforeExpand (object sender, System.Windows.Forms.TreeViewCancelEventArgs e) {
//Получить узел, который будет расширяться
System.Windows.Forms.TreeNode tnExpanding;
tnExpanding = e.Node;
//Если узел не отмечен как "нуждающийся в заполнении данными",
//то он устраивает нас в том виде, "как он есть".
if (tnExpanding.Tag !=(object) node_needToBePopulated) {
return; //Разрешить беспрепятственное продолжение выполнение
}
//------------------------------------------------------------
//Требуется динамическое заполнение дерева данными.
//Мы знаем, что узел должен быть заполнен данными; определить,
//что это за узел
//------------------------------------------------------------
if (tnExpanding.Text == nodeText Neighborhoods) {
PopulateTreeViewNeighborhoods(tnExpanding);
return; //добавление элементов закончено!
} else {
//Проверить другие возможности для узлов дерева, которые мы должны
//добавить.
System.Windows.Forms.MessageBox.Show("НЕ СДЕЛАНО: Добавьте код для динамического заполнения этого узла");