#c# #winforms
#c# #winforms
Вопрос:
Всем привет, я борюсь с некоторой проблемой в проекте из колледжа. Я создаю игру «4 в ряд» на c # для проекта по моему курсу c # в моем колледже.
Я создал форму с именем GameForm и внутри нее добавил панель с именем panelBoardGame. к этой игре panelBoardGame я добавил массив меток, которые будут интерактивными (для выполнения хода), и я также добавил матрицу меток, чтобы представлять саму доску.
Теперь моя задача состоит в том, чтобы всякий раз, когда мышь находится внутри области панели, изображение определенного игрока перемещается вместе с курсором, пока оно находится внутри области панели. когда мышь находится за пределами области, изображение монеты не будет отображаться.
Для этого я попытался запустить события OnMouseEnter, onMouseLeave в panelBoardGame, но почему-то они даже не были выполнены. Всякий раз, когда моя мышь находится внутри области panelBoardGame, код внутри функции panelBoardGame_MouseMove(……) не выполняется.
Кто-нибудь может мне с этим помочь?
Поскольку я новичок здесь, я не могу публиковать изображения, но я загрузил изображение сюда Изображение формы
Вот изображение формы, внутри нее с черной рамкой вокруг нее находится панель, а внутри панели я добавил метки
Комментарии:
1. я добавил изображение формы
Ответ №1:
Скорее всего, события перемещения и наведения курсора идут к самому верхнему элементу управления (меткам). Отображается ли какая-либо из ваших панелей?
Возможно, вам удастся захватить мышь в событии MouseEnter панели.
boardPanel.Capture = true;
Но это может повлиять на управление мышью в ярлыках.
В целом, вы, вероятно, обнаружите, что исправить это (пользовательский интерфейс) намного сложнее, чем кажется. Рассмотрите более простой дизайн «действие по щелчку». Для начала.
Комментарии:
1. События формы выполняются, но события панели — нет. Например. GameForm_OnMouseEnter / Move работает, но panelBoardGame_OnMouseEnter / Move не выполняется
Ответ №2:
Позвольте мне угадать, ваши метки полностью покрывают область панели. В Windows события мыши получает только верхний элемент управления. Поэтому, когда мышь находится над одной из ваших меток, события мыши переходят к метке, а не к панели, содержащей метку. Поэтому установите обработчик событий MouseMove на свои метки, и вы увидите, что они выполняются.
Комментарии:
1. Да, надписи занимают всю область на панели. Я хочу, чтобы всякий раз, когда мой курсор перемещается в области панели, за ним следовало изображение монеты, а когда курсор перемещается за пределы панели, я хочу, чтобы монета исчезала