#c# #winforms #treeview #tooltip #treenode
Вопрос:
Я обнаружил, что обычные всплывающие подсказки позволяют добавлять InitialShowDelay. При добавлении всплывающей подсказки в виде дерева я, похоже, не могу отредактировать эту задержку.
TreeNode node; node.ToolTipText = "Hello"; /* One suggestion was: * ToolTipService.InitialShowDelay * Another suggestion was: * toolTip.InitialShowDelay * This uses the ToolTip element, which isn't possible in a TreeView */
Мне было интересно, можно ли вообще добавить задержку всплывающей подсказки TreeNode, не рисуя вручную каждый узел с помощью DrawNode().
Правка 1:
В качестве альтернативы я добавил элемент управления всплывающей подсказкой с дополнительным событием наведения мыши:
private void treeView1_NodeMouseHover(object sender, TreeNodeMouseHoverEventArgs e) { if (!string.IsNullOrEmpty(e.Node.ToolTipText)) { toolTip1.Show(e.Node.ToolTipText, treeView1); } }
Ответ №1:
Возможно, я неправильно понял ваш вопрос, но подсказка.Метод Show имеет перегрузку по длительности.
Я добавил значение «2000» (время в миллисекундах) в ваш метод сразу после treeView1, чтобы удовлетворить параметру «int длительность».
private void treeView1_NodeMouseHover(object sender, TreeNodeMouseHoverEventArgs e) { if (!string.IsNullOrEmpty(e.Node.ToolTipText)) { toolTip1.Show(e.Node.ToolTipText, treeView1, 2000); } }
Комментарии:
1. Да, была также возможность предоставить узлам treeview собственную подсказку вместо использования элемента управления подсказкой. У первого нет вариантов задержки, поэтому я переключился на обычный элемент управления подсказками.