2014-03-25 7 views
0

비주얼 스튜디오 2010 은 Visual Basic .NET여러 줄 트 리뷰 노드

내가 TreeView 컨트롤 (tvLOC)가 는 tvLOC의 노드 중 일부는 너무 긴 사이드 스크롤이 필요합니다. 약간의 문자열 연결을 사용하면 노드 분할이 중단되고 삽입 된 vbCrLf가 생깁니다.

이제 내 문제는 두 번째 줄을 표시 할 수 없다는 것입니다. 사각형 그리기를 시도하고 노드 높이를 변경해 보았습니다. 아무 것도 작동하지 않는 것처럼 보입니다. 또한 여러 줄로 된 노드 중 하나를 클릭하면 tvLOC 맨 위에 노드가 다시 그려지는 곳에서 다시 그리기 문제가 발생합니다.

여기에 분명히 내가 무엇을 찾고 있어요 것은 불가능하다 내 DrawNode 코드

Dim nodeFont As Font = e.Node.NodeFont 

If nodeFont Is Nothing Then 
    nodeFont = CType(sender, TreeView).Font 
End If 

Dim testingString As String = e.Node.Text 

If testingString.Length > 60 Then 

    Dim hold As String = testingString.Substring(0, 60) 
    hold = hold.Substring(0, hold.LastIndexOf(" ")) 
    testingString = testingString.Replace(hold, "") 
    testingString = hold & vbCrLf & testingString 

    e.Graphics.DrawString(testingString, nodeFont, Brushes.Black, e.Bounds.Left, e.Bounds.Top + 1) 

Else 

    e.Graphics.DrawString(testingString, nodeFont, Brushes.Black, e.Bounds.Left, e.Bounds.Top + 1) 

End If 
+2

작동하지 않을 수 있습니다. 그리는 것은 트리 노드 경계로 잘립니다. 그것은 당신이 사용하고있는 글꼴에 비해 충분히 크지 않다. 대안은별로 좋지 않습니다. 노드 글꼴에 대해 가짜 포인트 크기를 사용하여 수직으로 충분한 공간을 확보해야합니다. 그러나 그것은 또한 그것을 너무 넓게 만듭니다. 차례로 위조 된 Text 속성을 사용해야합니다. 상용구는 도구 설명을 사용하여 노드에서 잘린 텍스트를 표시하는 것입니다. 또는 구성 요소 공급 업체에서 얻을 수있는 "TreeList"사용자 지정 컨트롤 중 하나를 사용합니다. –

+0

TreeView의 마지막 노드가 너무 길어서 분할하도록 설정 했으므로 두 번째 줄이 표시되지만 그 밖의 것은 없습니다. 그래서 기본적으로 60 문자보다 긴 노드의 높이를 확장하는 방법이 있는지 알아야합니다. – xRuhRohx

답변

0

입니다.
나는 이것이 나를 믿을 수있게 해줄 수있는 어떤 것도 발견 할 수 없었다.