Узел Treeview в vc # для свойства Auto Ellipsis - PullRequest
0 голосов
/ 07 января 2012

У меня есть элемент управления в виде дерева, в котором есть несколько узлов.Я хочу, чтобы свойство Auto Ellipsis находилось в древовидном узле, как у элемента управления меткой.Я сделал Google, но не получил соответствующую информацию или метод для решения этой задачи.Я использую c # в качестве языка программирования и .net Framework 3.5 в качестве платформы.Я делаю программу в форме Windows, а не в WPF.Спасибо.

1 Ответ

2 голосов
/ 07 января 2012

Вы правы, этого свойства не существует.Элемент управления TreeView отобразит горизонтальную полосу прокрутки, если метки для любого из узлов длиннее, чем видимая область для элемента управления.

Единственный вариант, который необходимо заменить на многоточие, - это рисование владельцемконтроль.Но так как вы хотите изменить только текст узлов, вы можете установить для свойства DrawMode значение OwnerDrawText (вместо OwnerDrawAll), что значительно уменьшает бремя рисования владельцем.

Вы можете найти образец кода для рисования владельцем элемента управления TreeView здесь, в MSDN .

Помните, что свойство ClientRectangle элемента управления,включая элемент управления TreeView, сообщит вам фактическую ширину клиентской области элемента управления.Используйте это, чтобы определить, является ли метка узла слишком длинной и нужно ли ее рисовать эллипсами.

Различные перегрузки метода TextRenderer.DrawText позволят вам рисоватьузлы помечаются способом, который напоминает способ, которым рисует сам нативный элемент управления (то есть, используя GDI, а не GDI +).Если передать соответствующую комбинацию TextFormatFlags, метод автоматически обрежет текст и заменит его многоточием.

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