Передача флажка управления функции - PullRequest
0 голосов
/ 21 апреля 2020

Я использую Access 365 и VisualBasi c. У меня есть несколько флажков в форме, которые я хочу отображать только их подмножество за раз, поэтому я хочу переместить верхнюю часть флажков, чтобы, независимо от того, какие из них отображались в данный момент, я мог правильно расположить их.

Итак, я объявил массив флажков, которые я хочу динамически добавить для отображения этих флажков:

' Array holding the checkboxes that will be displayed, depending upon species, sex, etc.
Dim arrCheckBoxes(cNumCheckboxes) As CheckBox

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

Private Sub AddCheckbox(ByRef arrCheckBoxes() As CheckBox, ByRef chkNew As CheckBox, ByRef intCurrentCheckbox)
    intCurrentCheckbox = intCurrentCheckbox + 1
    arrCheckBoxes(intCurrentCheckbox) = chkNew
End Sub

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

Call AddCheckbox(arrCheckBoxes, Me.CatNeuter, intCurrentCheckbox)

Однако Me.CatNeuter всегда равен 0, поэтому я думаю, что получаю только значение, а не сам элемент управления флажка , Я пробовал множество различных методов, таких как:

Me.Controls!CatNeuter
Me.Controls("CatNeuter")

Но я просто не могу понять, как передать фактический флажок, чтобы затем я мог go через массив и изменить свойство Top для каждого флажка.

С уважением, Лиз

1 Ответ

0 голосов
/ 25 апреля 2020

Вам необходимо использовать Set для объектов:

Set arrCheckBoxes(intCurrentCheckbox) = chkNew
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...