2010-12-09 2 views
1

TreeNode 개체에 ForeColor를 설정했습니다. 그리고 나중에이 노드를 클릭하면 마우스를 놓을 때까지 SelectedNode.ForeColor가 변경되지 않습니다.TreeNode ForeColor 변경 SelectedNode.ForeColor

TreeNode.ForeColor = Color.Red; 

ForeColor가있는 모든 TreeNodes == Color.Empty는 마우스 클릭 즉시 적절한 SelectedNode.ForeColor를 가져옵니다.

키보드를 사용하여 선택 영역을 이동하면 예상대로 작동합니다. 그러나 마우스를 클릭 할 때가 아닙니다. 예를 들어 노드의 ForeColor를 어떻게 설정합니까? Color.Black과 첫 번째 마우스 클릭시 올바른 SelectedNode.ForeColor를 얻으시겠습니까?

이렇게 TreeView를 채 웁니다. 내가

private void Form1_Load(object sender, EventArgs e) 
{ 
    for (int i = 0; i < 3; i++) 
    { 
    TreeNode node = new TreeNode("node_" + i); 

    for (int j = 0; j < 3; j++) 
    { 
     TreeNode childNode = new TreeNode("childNode_" + i + j); 

     if (j==0) 
     { 
     childNode.Text += "color"; 
     childNode.ForeColor = Color.Red; 
     } 

     node.Nodes.Add(childNode); 
    } 
    treeView1.Nodes.Add(node); 
    } 
} 

.. 마우스 왼쪽 버튼을 해제하고 적절한 화이트 데 ForeColor를 얻을 때까지 마우스의 "색"모든의 TreeNode 개체 나는 데 ForeColor (레드)를 얻을 수 추가에 .. 내가 이렇게 할 경우 ..

treeView1.FullRowSelect = false; //if this is true it don't work.. hm! 
treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText; 
treeView1.DrawNode += new DrawTreeNodeEventHandler(treeView1_DrawNode); 

void treeView1_DrawNode(object sender, DrawTreeNodeEventArgs e) 
{ 
    e.DrawDefault = true; 
} 

그것은 작동합니다! 흠. 이것은 .NET TreeView의 기본 동작에 버그입니까?

그리고 물론

..

//treeView1.DrawMode = TreeViewDrawMode.OwnerDrawText; 
//treeView1.DrawNode += new DrawTreeNodeEventHandler(treeView1_DrawNode); 

은 .. 지금은 .. 정상으로 돌아왔다 그리고 작동하지 않습니다! 아무도 이유를 설명 할 수 있습니까?! 노드의 왼쪽 단추를 클릭하면 파란색 배경과 노드 ForeColor가 나타납니다. 그 위에 나는 마우스 버튼을 놓을 때까지 기다렸다가 선택 배경과 앞쪽의 색을 정확하게 칠합니다 (제 생각에는).

참고! FullRowSelect가 true 인 경우 위의 DrawNode 코드는 작동하지 않습니다. 그것은 노드 부분을 제외한 모든 행에 파란색 배경색을 칠합니다 (흰색으로 칠 해짐).

답변

0

마우스가 눌렀을 때 트리거 할 마우스 클릭 이벤트를 설정합니다.

+0

이 도움말이 표시되지 않습니다. 이 코드를 treeView1_MouseDown에 추가했습니다. MouseEventArgs args = new MouseEventArgs (MouseButtons.Left, e.Clicks, e.X, e.Y, e.Delta); treeView1_MouseClick (sender, args); 마우스 왼쪽 버튼을 놓을 때까지 여전히 마우스 오른쪽 아래에 적용된 ForeColor (파란색 배경)가 나타납니다. 파란색 배경에 적절한 흰색 ForeColor가 나타납니다. – Vemund

0

treeview의 HideSelection 속성을 false로 설정하십시오.