Вопросы

Отображение другого курсора, когда пользователь наводит указатель мыши на конкретный элемент управления TreeNode элемента управления TreeView

Я требую, чтобы курсор формы изменился на курсор Cursors.Hand, когда пользователь наводит указатель на узел со специально названным родительским узлом.

Проблема, с которой я столкнулся при реализации этого, связана с изменением курсора обратно на значение по умолчанию, когда пользователь перемещает указатель от рассматриваемого TreeNode.

Я обработал событие NodeMouseHover элемента управления TreeView (как в фрагменте кода в конце), чтобы изменить указатель на альтернативный курсор и вернуться к курсору по умолчанию, когда указатель перемещается на другой узел, но это не обрабатывает случай когда пользователь перемещает указатель от узлов к, скажем, пустой области элемента управления TreeView.

Моя первоначальная и единственная интуиция относительно решения этой проблемы заключалась в том, чтобы получить местоположение и вычислить площадь TreeNode, которые требуют изменения курсора, и проверить, находится ли указатель по-прежнему на одном из них в обработчике события MouseMove. элемента управления TreeView, но я считаю, что это не изящное решение, так как существует множество TreeNode, которые требуют такого поведения, которое потребовало бы циклического перебора многих из них для проверки, что, в свою очередь, может привести к тому, что приложение окажется в редкие сценарии, немного не реагирует.

Читать:
Lex & Yacc: gcc при компиляции y.tab.c выдает много ожидаемых ошибок токена

Заранее спасибо.

PS Рассматриваемый фрагмент кода:

this.treeView.NodeMouseHover += delegate (object sender, TreeNodeMouseHoverEventArgs e)
{
   bool isNewCursorAssigned = false;
   if (e.Node.Parent != null)
   {
      if (e.Node.Parent.Text == "someTxt")
      {
         this.Cursor = Cursors.Hand;
         isNewCursorAssigned = true;
      }
   }
   if (isNewCursorAssigned == false && this.Cursor != this.DefaultCursor)
      this.Cursor = this.DefaultCursor;
};

Похожие записи

Ошибка в данных $ update_params (params = params): [LightGBM] [Fatal] Невозможно изменить max_bin после созданного дескриптора набора данных

admin

Flask (непредвиденная ошибка при использовании Gunicorn

admin

flutter: как получить полезную нагрузку push-уведомления из источника, отличного от firebase

admin

ошибка R10 при развертывании приложения Flask с докером на heroku

admin

Переименование файла Git. История доступна в cmd-строке, но не в интерфейсе github?

admin

Сборка ASP.NET Core в x86 на TFS

admin