我試圖在用戶右鍵單擊時在我的樹形視圖上顯示一個彈出式菜單 - 允許他們選擇上下文相關的操作來應用所選節點。右鍵點擊選擇.Net TreeNode
此刻用戶必須左鍵單擊節點,然後右鍵單擊才能選擇。
是否有可能在節點上點擊右鍵選擇該節點 - 如果是的話,最好的方法是什麼?
我試圖在用戶右鍵單擊時在我的樹形視圖上顯示一個彈出式菜單 - 允許他們選擇上下文相關的操作來應用所選節點。右鍵點擊選擇.Net TreeNode
此刻用戶必須左鍵單擊節點,然後右鍵單擊才能選擇。
是否有可能在節點上點擊右鍵選擇該節點 - 如果是的話,最好的方法是什麼?
左右兩側點擊觸發一個click事件,並導致選擇改變。但是,在某些情況下(我還沒有打擾追查),選擇將從右鍵單擊的節點更改爲最初選擇的節點。
爲了確保右鍵單擊更改選擇,你可以強制使用MouseDown
事件來改變選擇的節點:
treeView.MouseDown += (sender, args) =>
treeView.SelectedNode = treeView.GetNodeAt(args.X, args.Y);
好一點,因爲其他海報指出之一,是使用NodeMouseClick
事件:
treeView.NodeMouseClick += (sender, args) => treeView.SelectedNode = args.Node;
是的。這裏正在處理NodeMouseClick
事件:
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
treeView1.SelectedNode = e.Node;
}
將上下文菜單條上的形式,則:
private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
// Display context menu for eg:
ContextMenu1.Show();
}
}
我同意。簡單地將這段代碼添加到我的窗體的構造函數中對我來說是個訣竅。謝謝。 – 2012-09-14 04:42:21