当以编程方式创建窗口时,Treeview Tooltip表现得很奇怪

时间:2018-04-11 13:55:36

标签: c# winforms

当我将treeview添加到我以程序方式创建的窗口时,工具提示仅显示光标在进入节点之前的工具提示节点上的时间。

class Program
{
    private static Form window;
    private static TreeView treeView;

    static void Main(string[] args)
    {
        InitialiseComponent();
        window.ShowDialog();
    }

    private static void InitialiseComponent()
    {
        window = new Form();

        treeView = new TreeView(){ShowNodeToolTips = true};

        TreeNode node1 = new TreeNode { Text = "node1", ToolTipText = "node1Tooltip" };
        TreeNode node2 = new TreeNode { Text = "node2", ToolTipText = "node2Tooltip" };
        TreeNode node3 = new TreeNode { Text = "node3" };

        TreeNode node11 = new TreeNode { Text = "node1.1" };
        TreeNode node21 = new TreeNode { Text = "node2.1", ToolTipText = "node2.1Tooltip" };
        TreeNode node22 = new TreeNode { Text = "node2.2"};
        node1.Nodes.Add(node11);
        node2.Nodes.Add(node21);
        node2.Nodes.Add(node22);

        treeView.Nodes.Add(node1);
        treeView.Nodes.Add(node2);
        treeView.Nodes.Add(node3);

        window.Controls.Add(treeView);
    }
}

您需要添加Windows窗体作为项目的参考来测试它。 如果将树视图添加到使用默认Windows窗体项目创建的窗口,则悬停可以正常工作。

尝试在进入之前将光标悬停在节点2上而不将光标悬停在节点上。

然后将鼠标移动到节点1,然后再移回节点2.工具提示将显示光标是否在之前有工具提示的节点上。

为什么?如何解决此问题/使其正常工作?

1 个答案:

答案 0 :(得分:4)

添加Application.EnableVisualStyles();作为Main方法的第一行。不知道为什么!