【问题标题】:Treeview Tooltip behaves weird when the window is created programmatically以编程方式创建窗口时,Treeview Tooltip 的行为很奇怪
【发布时间】:2018-04-11 13:55:36
【问题描述】:

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

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。工具提示将显示您的光标是否在之前有工具提示的节点上。

为什么?我怎样才能解决这个问题/让它工作?

【问题讨论】:

  • Application.EnableVisualStyles(); 添加为Main 方法的第一行。
  • @RezaAghaei 哦,哇,好用。把它当作awser。但为什么要这样做呢?
  • 我不知道为什么。我尝试单独遗漏 [STAThread] 属性,并通过添加 Application.EnableVisualStyles(); 来解决问题。
  • @RezaAghaei 好吧。那我应该张贴遮阳篷吗?
  • 是的,您可以将其发布为答案,因为 我该如何解决这个问题/使其工作?

标签: c# winforms


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-04-17
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多