Индивидуальная подъемная подъема для узлов деревьеC#

Место общения программистов C#
Ответить
Anonymous
 Индивидуальная подъемная подъема для узлов деревье

Сообщение Anonymous »

У нас есть старое (очень старое) приложение Winforms, которое зависело от некоторых сторонних компонентов, которые нам больше не разрешают использовать. Один из этих компонентов использовался для отображения подсказки на отдельных узлах в обычном обзоре. Ничего очень необычного, но достаточно особенного, чтобы мы не могли просто использовать встроенный инструмент stiptext of TreeNode. Обработчики для всплывающего окна и рисовать события. Таким образом, у меня есть код в MouseMove и Mouseleave события для Treeview , которые показывают/скрывают подсказку инструмента инструмента Node, вызывая Show () и Hide () методы подсказки инструмента . либо слишком мал для текста, который он показывает (делая подъемную подсказку бесполезно), либо слишком большим (что выглядит глупо). И я не говорю о полях здесь - разница в том, что должен быть , довольно большой. Размер блока действительно должен быть установлен специально для каждого узла. Я предполагаю, что это поведение связано с тем фактом, что управление «источником» подсказки инструментов не изменяется - это всегда Treeview . Но даже это правильно, я понятия не имею, как это обойти. Lf.
Если бы мы могли просто изменить шрифт для подъема инструментов на Consolas (фиксированная ширина), показывая эту строку в качестве подъема инструментов для узла было бы достаточно хорошим.
Любая помощь будет очень оценена. именно то, о чем я просил. Единственная проблема заключается в том, что это в значительной степени именно то, как я уже делал это:-/
Единственное отличие состоит в том, что 1) Я запускаю открытие подъема инструментов в событии Mousemove (более подходящее, чем nodemousehover в отношении других функций в моем случае), и 2) я использую формы. Форма).
Ни одно из этих различий не должно влиять на результат, но просто для того, чтобы убедиться, я удалил таймер и вывел подсказку .show () (непосредственно) из события nodemousehover . Это не имело никакого значения - всплывающее событие по -прежнему не стреляет. Но меня поразило, что я не был уверен, какой вариант .NET я использовал. Итак, я создал два новых идентичных проекта (используя код Olivier): один для .NET 8 (это то, что мы используем для всех новых проектов, и, вероятно, то, что я использовал дома), и один для .NET Framework 4.8, что мы застряли для приложения, о котором я говорю. :-(
Насколько я могу судить из документации, это должно работать одинаково для .NET Framework и .net. Возможно, мне неизвестны другие факторы. /> , чем вы!
Решение
Этот ответ от @shingo к последующему вопросу, который я упомянул выше, объясняет причину проблемы и предлагает три решения. от @Dr.null.

Подробнее здесь: https://stackoverflow.com/questions/797 ... not-firing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»