Access 2002

Уникальный идентификатор элемента управления


Это верно, что Access передает функции обратного вызова уникальный идентификатор элемента управления, для которого она вызвана. Кроме того, программа передает ей ссылку на этот элемент управления. В связи с этим может показаться, что для заполнения двух списков в нашем примере достаточно одной функции обратного вызова. В действительности объединение двух функций — F i 11 – Selected и Fill Avail able — в одну, скорее, усложняет, нежели упрощает работу. Проблема заключается в том, что Access заполняет списки не по очереди (сначала один, затем другой), а попеременно: несколько строк из одного, затем несколько строк из другого, далее снова несколько строк из первого и т. д. Хотя физически эти две функции можно объединить в одну, результирующий код был бы слишком запутанным и трудным для сопровождения. Поэтому целесообразно использовать две отдельные функции обратного вызова.

Для упрощения вашей задачи в класс Multi Pi к включен метод Fill Lists. Он вызывается только из функции обратного вызова Fi 11 Li sts, применяемой для заполнения списков в вашей форме. Но ни эта функция, ни этот метод списков не заполняют: они служат только переходниками. Это значит, что имя функции Fi 11 Li sts присваивается свойству RowSourceType обоих списков, а сама функция помещается в модуль класса формы. Текст ее таков:

Получение списка выбранных элементов

Описываемый в этом примере мультисписок, который состоит из двух связанных списков, потерял бы всю свою привлекательность, если бы не позволял пользователю с легкостью просматривать выбранные элементы. Поэтому в класс Multi Pi к включено свойство, возвращающее массив выбранных пользователем элементов. Наша форма-пример frmMultiPik выводит этот список на экран при выполнении щелчка на кнопке View Selected.

Комментарии закрыты