#c# #winforms #treeview
#c# #winforms #просмотр дерева
Вопрос:
У меня есть treeview
которые имеют в качестве баз данных treenodes, а в базах данных есть таблицы. Я хочу показывать listview при нажатии на название таблицы. Какой обработчик событий я должен использовать для этого? Я пробовал treenodemouseclick
, treenodemousedoubleclick
и mouseclick
обработчики, но никакого эффекта не было. Пожалуйста, помогите.
Комментарии:
1. Было бы полезно, если бы вы переформулировали свой вопрос, чтобы он был более четким. Вы упоминаете ListView и TreeView так, как будто это одно и то же, но это разные элементы управления…
2. В eventhandler, когда я нажал на таблицу узлов treeview, я проверил, является ли treenode, на который я нажал, таблицей, которую я добавляю в элементы управления новым listview (это для начала), но обработчики событий treenodemouseclick и mouseclick мыши ничего не сделали, когда я нажал на имена таблиц
Ответ №1:
Обычно я использую AfterSelectEvent, который приводит ссылку на выбранный узел в аргументе события:
private void TvwTraining_AfterSelect(object sender, TreeViewEventArgs e)
{
if (e.Node.Parent == null)
{
// Its a top level node
ParentObject ParentObj = (ParentObject)e.Node.Tag;
ShowParentDetails(ParentObj);
}
else
{
// Its a child node
ChildObject ChildObj = (ChildObject)e.Node.Tag;
ShowChildDetails(ChildObj);
}
}
Затем вам просто нужно обработать событие в зависимости от полученного вами узла.
Удачи, Немезида
Ответ №2:
Вы говорите о Windows.Forms.TreeView
?
Если это так, и вы имеете дело с выбором узлов, вам нужно событие BeforeSelect
or AfterSelect
.
BeforeSelect
позволит вам определить, какой узел будет выбран, и отреагировать соответствующим образом или даже отменить выбор узла, если потребуется.
AfterSelect
лучше всего, если вы не пытаетесь делать что-либо конкретное с выбором узла, но хотите выполнить дополнительную работу для определенных выделений (или каждого выделения).
http://msdn.microsoft.com/en-us/library/system.windows.forms.treeview.aspx