c # winforms проблема контекстного меню событий - PullRequest
0 голосов
/ 04 августа 2009

Я добавил контекстное меню (добавить, отменить) для динамического просмотра дерева. Теперь я хочу показать выбранное значение узла дерева, когда я нажимаю на пункт контекстного меню.

Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 04 августа 2009

Я предполагаю, что вы хотите знать, на каком узле щелкнули правой кнопкой мыши при открытии контекстного меню?

Чтобы определить это, вы можете обработать событие mousedown в древовидном представлении и убедиться, что узел, по которому вы щелкнули правой кнопкой мыши, выбран до отображения контекстного меню.

    private void treeView1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
        {
            var node = treeView1.HitTest(e.X, e.Y).Node;
            treeView1.SelectedNode = node;
        }
    }

В обработчике щелчков ToolStripMenuItem вы можете проверить treeView1.SelectedNode, оно будет нулевым, если пользователь щелкнет правой кнопкой мыши на дереве вне узла.

    private void addToolStripMenuItem_Click(object sender, EventArgs e)
    {
        if (treeView1.SelectedNode != null) MessageBox.Show("Node selected: " + treeView1.SelectedNode.Text);
    }
1 голос
/ 04 августа 2009

Полагаю, вам просто нужно знать текст триода? Этот код должен делать работу

string treeNodeText = this.treeView1.SelectedNode.Text;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...