У меня есть событие MouseEnter, которое в настоящее время обрабатывает некоторые пользовательские элементы управления в моей форме. Программа - карточная игра. У меня есть коллекция (handCards), которая заполняется, когда пользователь рисует карту, а затем добавляет последнюю форму в форму. В этой коллекции хранятся карты различных пользовательских типов, все, что наследуется от picturebox. Рисование карт из колоды и добавление их в форму отлично работает. Проблема, с которой я столкнулась, заключается в том, что во время выполнения, после того, как карта была нарисована и добавлена в форму, я создал строку кода addhandler, чтобы эти карточки отвечали на мое событие MouseEnter, но моя строка кода addhandler сообщает мне, что MouseEnter не является событием объекта. Как я могу обойти это, чтобы после того, как карта была нарисована и добавлена в форму, когда мышь входит в новый настраиваемый элемент управления, мое событие MouseEnter срабатывает? Вот одна из многих вещей, которые я пробовал, и то, что я думаю, должно быть самым простым и легким, что должно работать.AddHandler для пользовательских элементов управления error visual studio
deck.DrawCard()
AddHandler handCards(handCards.Count).MouseEnter, AddressOf Cards_MouseEnter
P.S. событие MouseEnter отлично работает для пользовательских элементов управления, которые находятся в форме до запуска, и все, что она делает, - это взять изображение элемента управления и увеличить его, поместив изображение в большую карту в форме.
Если ваш массив handCards по-прежнему имеет тип 'Object', то это не очень хорошая идея, потому что объект, который вы передаете' addHandlers', будет неявно преобразован в тип 'Control'. Вы можете добавить любой объект в массив, ссылки которого имеют тип 'Object', так как каждый объект спускается из типа' Object'. Но если вы добавите что-то, что не спустится с 'Control' в массив handCards, а затем вы передадите это вашему методу addHandlers, вы получите исключение во время выполнения, когда неявное преобразование завершится с ошибкой.Вы можете сказать, что этого никогда не произойдет, но неявное преобразование типа обычно считается плохой идеей. –
Параметры вашего компилятора могут игнорировать неявные преобразования, но лично я считаю, что рекомендуется изменить параметр, чтобы хотя бы предупредить о неявных преобразованиях. –
hmmm, не уверен, как это сделать или найти эту настройку. Я как бы учился, когда я ухожу. Подумайте, я должен попытаться поймать там? Я действительно никогда не думал, что какие-либо из карт в колоде (которые все наследуют от PB) не будут работать с сообщением addhandler, но лучше всего быть в безопасности, я полагаю. –