私は、メインフォームの一部であるtabControlのtabPage内にtreeViewがあるC#windowsフォームアプリケーションを持っています。クリック1回後に2回クリックした後に変更が発生する
ツリービューの場合は、選択したいツリービューの項目をクリックして、選択したアイテムに基づいて変更が行われます。
アイテムの選択にAfterSelectイベントを使用しています。また、選択を元に戻すためにmouseUpイベントを使用しています。
アイテムの選択と選択解除は、ワンクリックですぐに実行できます(問題ありません)。他の変更は、選択されたアイテムに基づいて2回のクリック後に発生する必要があります!項目ノード上またはノード領域外のいずれかを1回クリックしても、この変更は発生しません。私は変更を見るためにもう一度クリックしなければなりません。それは有線です。私はこれに似た何かのマウスダブルクリックイベントを使用していない、私は上記のイベントだけを使用しています。
どうしたらいいですか?それを解決する方法は?ありがとう。
編集:私は、ツリービューの私自身のマルチセレクションのバージョンを使用していると私は私が最初にクリックした後、AfterSelectイベントでツリーの選択されたノードを取得するときには、それを、ゼロであること(デバッグを使用して)い 2回目のクリックで選択されたノードの数です。ツリービューのオーバーライドされたOnAfterSelectイベントの中で、選択されたノードが追加され、現在選択されているノードリストにクリックされるたびに、どのようになっていますか?ここ
は、ツリービューのコードの一部です:
public List<TreeNode> SelectedNodes
{
get
{
return selectedNodes;
}
set
{
removeSelectionFromNodes();
selectedNodes = value;
selectNodes();
}
}
protected override void OnAfterSelect(TreeViewEventArgs e)
{
base.OnAfterSelect(e);
base.SelectedNode = null;
List<MSTreeNode> nodes = new List<MSTreeNode>();
.
.
.
removeSelectionFromNodes();
selectedNodes.Clear();
selectedNodes.AddRange(nodes);
selectNodes();
}
これはマウスキャプチャの副作用であり、Control.Captureプロパティです。それがどのように起こったかは、その記述から完全には不明である。スニペットを投稿してください。 –
私の投稿を更新しました – mj1261829