以编程方式创建窗口时,树视图工具提示的行为很奇怪



当我将树视图添加到以编程方式创建的窗口中时,工具提示仅在光标位于具有工具提示的节点上时才显示,然后再进入节点。

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);
    }
}

您需要添加窗口窗体作为对项目的引用来测试这一点。如果将树视图添加到使用默认窗口窗体项目创建的窗口,则悬停将正常工作。

在进入之前,尝试将光标直接悬停在节点 2 上,不要将光标悬停在节点上。

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

为什么?我该如何解决这个问题/让它工作?

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

最新更新