c# 형식의 텍스트와 새로운 줄이있는 treeview 노드
문제
(스톡 C# treeview를 사용하여) 멀티 린 트린 노드를 갖기 위해 가능합니까?
또한 Treenode의 텍스트에 제어 문자를 추가 할 수 있습니까? 트린 노드에 열을 추가하여 동일한 효과를 얻을 수 있습니다. 이게 가능해?
해결책
나는 이것이 최소한 자신의 노드를 그리지 않고 Winforms를 사용하여 가능하다고 생각하지 않습니다. 그러나 "소유자가 그린"Treenode를 사용하여 Winforms에서이를 달성 할 수는 있지만 모르겠습니다.
그러나 이것은 WPF로 기본적으로 지원됩니다.
다른 팁
귀하가 ASP.NET 또는 WinForms에 있는지 여부는 귀하의 질문에서 분명하지 않습니다. ASP.NET에 있다면 프리 태그를 사용하여 서식을 얻을 수 있습니다 ...?
그게 당신이 예를 들어 볼 수있는 Ra-Ajax treeview 여기 ASP.NET의 내장 트리 뷰보다 우수한 중재 금액 및/또는 그 안에 컨트롤을 가질 수 있습니다. (면책 조항; 나는 Ra-Ajax와 함께 일합니다)
이를 통해 TreeView의 내용을 원하는대로 정확하게 포맷 할 수 있습니다. 당신이 완전히 맹렬하게 가면 공간이나 그와 비슷한 것이 너무 많기 때문에 "디스플레이 아티팩트"를 만들 위험이 여전히 남아 있습니다 ...
Treenode 내부에서 표제를 효과적으로 사용하는 것은 불가능합니다. 어쨌든, 나는 해결 방법이있다 :
글꼴 "Consolas"는 각 문자의 공간이 동일하므로 빈으로 쉽게 공간을 가질 수 있습니다. 이 메소드 getemptyinfobyIndex는 지정된 길이가 될 때까지 간격을 채우기 위해 커스텀 렌지 공백을 반환합니다. 여기 = 20.
mynode.NodeFont = new System.Drawing.Font("Consolas", 9,FontStyle.Regular);
string displaytext = String.Format(CultureInfo.InvariantCulture, "{0}{2} = {1}", mystringOfDifferentLenght, myresult, GetEmptyInfoByIndex(mystringOfDifferentLength, 20));
mynode.Text = displaytext;
rootnode.Nodes.Add(mynode);
private string GetEmptyInfoByIndex(string _string, int maxLength)
{
string retstr = string.Empty;
for (int i = 0; i < maxLength - _string.Length; i++)
{
retstr += " ";
}
return retstr;
}