2つのTreeViewコントロールがあり、ユーザーはTreeView1でノードの1つを選択してから、TreeView2で1つのノードを選択します。
問題は、彼が他のTreeViewのノードを選択すると、前のノードがフォーカスを離れて、ユーザーがどのTreeViewが選択されたかを知らないことです。
2つのTreeNodeにフォーカスを維持したり、ForeColorを変更したり、選択したノードを太字にして、選択したノードが引き続き表示されるようにする方法はありますか。
TreeViewのHideSelectionプロパティをfalseに設定します。
ツリービューがフォーカスを失った場合でも、選択したツリーノードが強調表示されたままになるかどうかを示す値を取得または設定します。
あなたが持っている両方のツリービューの選択されたノードを追跡するために2つのフィールドを持つことができます(AfterSelect
イベントの使用)。何かのようなもの:
private TreeNode selectedNodeA;
private TreeNode selectedNodeB;
private void treeViewA_AfterSelect(object sender, TreeViewEventArgs e)
{
//Reset color if was perviously highlighted
if (selectedNodeA != null)
selectedNodeA.BackColor = Color.White;
selectedNodeA = e.Node;
//Here you can indicate the node is selected, change background color or set font to
// Bold or any other tricks!
selectedNodeA.BackColor = Color.LightGray;
//Rest of code
}
上記のコードは、winformsが使用するデフォルトの色とは異なる色が必要な場合に使用します(HideSelection
Stuartが言ったようにfalseに設定することによって)。