Как я могу щелкнуть правой кнопкой мыши, чтобы выбрать узел в древовидном элементе управления - PullRequest
14 голосов
/ 31 августа 2011

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

Ответы [ 2 ]

28 голосов
/ 31 августа 2011

Это потому, что выделенный цвет выполняет две обязанности, он показывает выбранный узел , а показывает сфокусированный узел. Если вы ничего не делаете с событием правого клика, то он возвращается к выбранному узлу. Обходной путь должен выбрать узел:

    private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) {
        if (e.Button == MouseButtons.Right) treeView1.SelectedNode = e.Node;
    }

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

3 голосов
/ 31 августа 2011

Извинения. Я слегка подпрыгнул от пистолета. Я нашел, как это сделать следующим образом:

    Private Sub TreeView1_NodeMouseClick(sender As Object, e As System.Windows.Forms.TreeNodeMouseClickEventArgs) Handles TreeView1.NodeMouseClick
        If e.Button = Windows.Forms.MouseButtons.Right Then
            TreeView1.SelectedNode = e.Node
        End If
    End Sub

Разве управление не должно делать это стандартно?

...