Хотите выделить несколько символов слова жирным шрифтом в treenode в winforms, используя c # - PullRequest
2 голосов
/ 21 июля 2011

У меня есть «поиск TextBox» для поиска в виде дерева, я даю результат очень хорошо.Но я хочу, чтобы те части получили жирный шрифт, который я набрал в «search TextBox» моей winform.

1 Ответ

4 голосов
/ 21 июля 2011

Класс TreeNode этого не поддерживает, его текст всегда рисуется одним шрифтом, TreeView.Font.Делать части текста жирным шрифтом технически возможно, но очень трудно понять правильно.Вам необходимо включить пользовательское рисование с помощью свойства TreeView.DrawMode и события DrawItem, хороший пример которого приведен в статье библиотеки MSDN.

Это простая часть, сложная проблема заключается в том, что узел слишком мал дляпоместите текст после того, как вы нарисуете его жирным шрифтом.В TreeView отсутствует событие «MeasureNodeText», которое позволило бы вам запросить достаточно места.Единственный обходной путь для этого заключается в том, чтобы лгать о тексте узла и искусственно расширять его, добавляя префиксы к символам.Который вы тогда не рисуете в событии DrawItem.Очень трудно получить правильную последовательность, вместо этого вы захотите рассмотреть шрифт с фиксированной высотой.

Я не могу рекомендовать вам следовать этому, если эта функция не очень важна для вас.Это иначе объясняет, почему вы никогда не увидите эту функцию в других программах.Попробуйте также изменить цвет вместо веса шрифта.Все еще трудно склеить кусочки между прочим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...