2012-01-07 73 views
0

我有一个树视图控件,它有一些节点。我希望自动省略号属性树视图节点像标签控件一样。我做了Google,但没有获得相关信息或方法来完成此任务。 我使用c#作为编程语言,.net framework 3.5作为平台。我正在Windows窗体中创建不在WPF中的程序。 谢谢。自动省略号属性vc#中的treeview节点

回答

2

你说得对,该属性不存在。如果任何节点的标签长于控件的可视区域,TreeView控件将显示一个水平滚动条。

您必须用省略号替换它的唯一选项是自己绘制控件。但是由于您只想更改节点的文本,因此可以将DrawMode property设置为OwnerDrawText(而不是OwnerDrawAll),这可以显着减轻所有者绘图的负担。

你可以找到所有者绘制一个TreeView控制here on MSDN的示例代码。

请记住,控件的ClientRectangle property(包括TreeView控件)会告诉您控件客户区的实际宽度。用它来确定节点标签是否过长,以及是否需要用椭圆绘制。

various overloads of the TextRenderer.DrawText method将允许您以类似于本机控件自身绘制方式(即使用GDI而非GDI +)的方式绘制节点标签。通过TextFormatFlags的适当组合将指示该方法自动修剪文本并用省略号替换它。

+0

这不适合我 – Awadhendra 2012-01-07 15:53:39

+0

@Awadhendra:它的效果很好。什么部分不适合你?你写了什么代码? – 2012-01-07 16:01:46

+0

我已经在设计时设置了treeview的DrawMode属性。 – Awadhendra 2012-01-07 16:09:14