【问题标题】:Treeview node in vc# for Auto Ellipsis propertyvc# 中用于 Auto Ellipsis 属性的 Treeview 节点
【发布时间】:2012-01-07 20:36:18
【问题描述】:

我有一个包含一些节点的树视图控件。我希望 Auto Ellipsis 属性像标签控件一样树视图节点。我做了谷歌,但没有得到相关信息或方法来完成这项任务。 我使用 c# 作为编程语言,使用 .net framework 3.5 作为平台。我正在以 Windows 形式而不是在 WPF 中制作程序。 谢谢。

【问题讨论】:

    标签: c# .net winforms treeview


    【解决方案1】:

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

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

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

    请记住,控件的ClientRectangle property,包括TreeView 控件,将告诉您控件客户区的实际宽度。以此判断节点标签是否过长,是否需要用椭圆绘制。

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

    【讨论】:

    • @Awadhendra:效果很好。哪一部分不适合你?你写了什么代码?
    • 我在设计时设置了treeview的DrawMode属性。
    • 您阅读了我其余的回答吗?还是你只是做了听起来很容易的部分?
    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-18
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    相关资源
    最近更新 更多