在WinForms中对TreeView进行子类化,以获取鼠标悬停工具提示

时间:2009-07-29 11:28:13

标签: c# winforms treeview tooltip

好的,这很奇怪。

TreeView控件的预期行为是,如果ShowNodeToolTips设置为false,那么,当树节点的标签超出控件的宽度时(或者更确切地说,它的右边缘超过右手边)客户区的边缘),然后在节点上方显示工具提示,显示完整项目的文本。

我想禁用它,因为上述语义并不总是有效,具体取决于树视图所包含的内容。所以我已经推出了自己的工具提示(并且比默认工具提示更好!) - 但我希望能够在本机工作的情况下禁用“默认”行为。

那么,任何人都可以指出我在哪个消息上发布到TreeView以禁用该行为的正确方向?我查看了windows控件参考,但找不到任何看起来可能是那个的。

2 个答案:

答案 0 :(得分:1)

试试这个:

private const int TVS_NOTOOLTIPS = 0x80;

protected override System.Windows.Forms.CreateParams CreateParams
{
    get
    {
        CreateParams p = base.CreateParams;
        p.Style = p.Style | TVS_NOTOOLTIPS;
        return p;
    }
}

答案 1 :(得分:0)

很抱歉,但发现这个没有多大帮助...... http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=337872

作为一个相当痛苦的解决方法,我唯一的建议是始终将Text设置为空以禁止任何工具提示,使用TreeNode.Tag属性存储要显示的节点的实际文本,以及所有者 - 自己写文本。