Вопрос

Предположим, я использую контекстное меню для добавления дочерних узлов в элемент управления treeview.

(1) Я щелкаю правой кнопкой мыши по узлу

(2) всплывающее контекстное меню

(3), затем я нажимаю " Добавить " пункт меню

(4) открывается диалоговое окно

(5) Я ввожу имя в этом DialogBox и нажимаю OK

(6) Новый узел создан.

Как я могу получить ссылку на текущий узел, когда я нажимаю на пункт контекстного меню?

Мне нужно это, потому что родительский объект хранится в свойстве Tag текущего узла.

Это было полезно?

Решение

Если вы обрабатываете TreeNodeMouseClick , тогда вашему TreeNodeMouseClickEventHandler будет передан аргумент TreeNodeMouseClickEventArgs .

TreeNodeMouseClickEventArgs.Node будет необходимой ссылкой на TreeNode. См. TreeNodeMouseClick документы для примера, подобного следующему:

void treeView1_NodeMouseClick(object sender,  
    TreeNodeMouseClickEventArgs e)
{
    TreeNode theTreeNodeIWant = e.Node

}

Если вам нужно, вы можете сохранить ссылку в переменной-члене, чтобы другой метод мог получить к ней доступ.

Другие советы

Вы можете получить положение мыши из

System.Windows.Forms.Cursor.Position

Сохраните это перед отображением контекстного меню.

Затем используйте метод в древовидной структуре, содержащий ваши элементы

GetChildAtPoint(Point)

и добавьте ребенка ниже этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top