簡體   English   中英

樹狀視圖所選項目

[英]tree view selected item

我的應用程序中有一個由動態創建的樹節點。當右鍵單擊要獲取被單擊的節點文本的任何節點時。我將該值用於進一步處理。我嘗試使用選定的節點屬性,但某些節點不起作用次。

提前致謝

碼:

public void CmsAppList_RightClicked(object sender, MouseEventArgs e) 
{
     AddUser _addUser = new AddUser(this.Text); // i want to get that value to this constructor
     _addUser.ShowDialog();
}

這是大多數列表控件的已知問題,要解決此問題,請向Treeview的MouseDown事件中添加事件處理程序,並在右鍵單擊上設置選定的節點,如下所示。 我的treeview名稱是treeView1只需進行相應更改。

    private void treeView1_MouseDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
            treeView1.SelectedNode = treeView1.GetNodeAt(e.Location);
    }

現在,selectednode應該始終反映您最后單擊的節點。

編輯 (更正This is known issue並說This is by design and right

我一直在考慮更新此答案,因為我意識到我所說的關於已知問題的說法在多個列表控件上是錯誤的。

假設這是一個已知問題,我們將其修復,然后右鍵單擊和左鍵單擊具有類似的行為,只是右鍵單擊會執行所有操作(左鍵單擊會執行所有操作),然后打開上下文菜單。 在我們仔細查看上下文菜單(右鍵單擊)的性質之前,這聽起來似乎不錯,假設您選擇了15個文件,然后在第16個文件上單擊(左),選擇丟失了:),因此選擇了15個文件,然后右鍵單擊上下文菜單,然后操作適用於所有選定的15個文件。

這就是右鍵單擊不應更改任何視圖(在列表框,樹視圖或資源管理器widnow中)的選擇的原因。 如果這樣做的話,多選和Control + Select功能將中斷,並且最終會失去右鍵單擊作為上下文特定操作的特殊含義。 這就是右鍵單擊不會選擇被單擊節點的原因,這是正確的。 上面提供的代碼用於啟用右鍵單擊選擇的特定目的。 並考慮這種變通或異常行為對UX的影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM