Как написать несколько строк в узле дерева в treeview в c# win. форма
Как написать несколько строк в узле treeview:-
Пример:Изображение[^]
Как вы уже выяснили, нет прямого способа отображения текста с несколькими строками в качестве содержимого TreeView TreeNode WinForms.
Теоретически вы могли бы сделать это с помощью пользовательского владельца-рисования узла и его текста, и Microsoft предоставила пример этого (но пример не демонстрирует несколько строк текста) начиная с FrameWork 2.0: [^].
Я бы посоветовал вам не тратить время на попытки создания пользовательских узлов, нарисованных владельцем, если только вы не являетесь опытным разработчиком, и у вас есть много времени, чтобы тратить его на небольшую отдачу.
Итак, каковы же альтернативы ?
1. Установите свойство 'Scrollable TreeView в значение 'true и позвольте конечному пользователю прокручивать, чтобы увидеть расширенное текстовое содержимое в TreeNode.
2. установите 'Scrollable в 'false и 'ShowNodeToolTips в 'true, а также назначьте строки с символами разрыва строки свойству ToolTip всех или некоторых TreeNodes. Или вы можете написать некоторый код, который при запуске приложения рекурсивно прошел через все TreeNodes и создал пользовательские всплывающие подсказки только для тех TreeNodes, которые, как вы каким-то образом выяснили, имели расширенный текст длины. Проблема в том, что нет никакого способа точно определить, сколько текущего текста находится в узле нет видимый, учитывая ширину TreeView.
Наконец, я бы предложил вам изучить различные элементы управления TreeView и TreeListView, которые были опубликованы здесь на CP на протяжении многих лет, начиная с классического ObjectListView Филипа Пайпера, который развивался в течение многих лет и который все еще активно поддерживается (по состоянию на май 2014 года): [^].
Я верю, но не уверен, что ObjectListView поддерживает многострочное текстовое содержимое в узлах.
я уже видел несколько примеров "DrawNode" раньше, но ни один из них не работает нормально в моем случае, и я готов потратить на это некоторое время.
и кстати, что такое "ObjectListView"? не могли бы вы привести мне какой-нибудь пример статьи или кодекса?
Привет, я даю вам метод только для того, чтобы знать, как это сделать, хорошо, это единственный пример, который я еще не тестирую, этот код работает или нет......
частный недействительными методе form1_load(объект отправителя, EventArgs в электронной)
{
//
// Это первый узел в представлении.
//
Узлов дерева узлов дерева = новый объект treenode("БМВ");
элемента управления treeview1.Узлы.Добавить(treeNode);
//
// Еще один узел, следующий за первым узлом.
//
treeNode = новый TreeNode("Марути");
элемента управления treeview1.Узлы.Добавить(treeNode);
//
// Создайте два дочерних узла и поместите их в массив.
// ... Добавьте третий узел и укажите их в качестве дочерних узлов.
//
TreeNode node2 = новый TreeNode("Болоро");
Узлов дерева Узел3 = новый объект treenode("Ксило");
TreeNode[] array = new TreeNode[] { node2, node3 };
//
// Конечный узел.
//
treeNode = новый TreeNode("Mahindra", массив);
элемента управления treeview1.Узлы.Добавить(treeNode);
}
сэр, на самом деле я не понимаю, что вы просто добавляете "узлы к дереву". Мне нужны новые строки в одном и том же узле, а не в другом узле. Пожалуйста, посмотрите изображение еще раз, сэр.
Попробовать это
Узлов дерева tnode_child_item = новый объект treenode();
tnode_child_item.Text = "<span> <div > first line<br/> <span>second line</span> </div></span>";
Вопрос заключается в том, что Windows Forms TreeView
. Ваше решение, по-видимому, предназначено для веб-форма TreeView
, что является совершенно другим контролем.