Как добавить задержку всплывающей подсказки TreeNode в c#

#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 собственную подсказку вместо использования элемента управления подсказкой. У первого нет вариантов задержки, поэтому я переключился на обычный элемент управления подсказками.