ユーザーが右クリックしたときにツリービューにポップアップメニューを表示しようとしています-選択したノードに適用する状況依存アクションを選択できます。
現時点では、ユーザーはノードを左クリックしてから右クリックして選択する必要があります。
ノードを右クリックしてそのノードを選択することは可能ですか?そうであれば、これを行うための最良の方法は何ですか?.
左クリックと右クリックの両方でクリックイベントが発生し、選択が変更されます。ただし、特定の状況では(私はまだトレースする必要がありません)、選択は右クリックされたノードから最初に選択されたノードに変わります。
右クリックで選択が確実に変更されるようにするために、MouseDown
イベントを使用して、選択したノードを強制的に変更できます。
treeView.MouseDown += (sender, args) =>
treeView.SelectedNode = treeView.GetNodeAt(args.X, args.Y);
他のポスターの1つが指摘したように、少し良いのは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();
}
}