c # Treeview Node с форматированным текстом, например, вкладки и новые строки

Возможно ли (используя фон c # TreeView) иметь Multiline TreeNodes?

Кроме того, можно добавить управляющие символы в текст TreeNode, например ' t'? Этот же эффект может быть достигнут путем добавления столбцов в TreeNode. Это возможно?

c#,treeview,format,treenode,

3

Ответов: 3


2 принят

Я не думаю, что это возможно с использованием WinForms, по крайней мере, без рисования собственных узлов. Вы можете использовать «привязанный владельцем» treenode для выполнения этого в WinForms, хотя, я не знаю.

Однако это поддерживается с помощью WPF.


1

С вашего вопроса не совсем ясно, находитесь ли вы на ASP.NET или WinForms. Если вы работаете в ASP.NET, вы можете попробовать использовать тег PRE для форматирования ...?

Что , который сказал Ра-Ajax TreeView , который вы можете увидеть пример здесь может иметь любое количество арбитражной в HTML и / или даже управления внутри него , который в основном делает его путь превосходит встроенный в TreeView в ASP.NET. (Отказ от ответственности, я работаю с Ra-Ajax)

Это позволяет вам форматировать содержимое TreeView точно так, как вы пожелаете. Хотя, если вы идете полностью неистово, вы все еще рискуете создать «экспонат артефактов» из-за слишком большого количества пространства или чего-то подобного ...


0

Невозможно эффективно использовать табулятор внутри TreeNode. В любом случае, у меня есть обходное решение:

Шрифт «Консола» имеет равное пространство каждой буквы, поэтому вы можете легко пробежать пробелы. Метод 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;
    }

Доказательство здесь!

C #, TreeView, формат, TreeNode,
Похожие вопросы