You can pass an array of panels to the class and save it as a global variable. You will then be able to use it whenever needed.
Thanks Erel,
Although I didn't try defining the whole array of panels as DraggableView, I did define each element individually. Each of the individual elements moved. However, given the restraints listed in my original post, I also need to access the "grid" and the current grid location of the free space. The Grid is an integer array (MaxElements, 3). MaxElements depends on the puzzle"s cocmplexity level. The other dimension is: 0 = occupied/not occupied (1/0), 1 = Left edge of grid cell, 2 = Top edge of grid cell. The free space (Free) is a pointer (integer) that holds the Grid element number of the free space.
As the "Tiles" are moved, the location of the free space will change (will be swapped with the Tile being moved). It is the entire Grid array and Free to which I need access and to be able to change as needed. I would add the necessary procedures/functions to the DraggableView class module but I don't know how and when to declare pass these variables. If the entire array of panels could be defined and initialized (not element by element), I suppose I could add the grid array to the class module's Sub Initialize. But I will need Free as well, which dynamically changes with each moved piece. How/Where do I define these and where do I pass them? I hope I am being clear in my description and questions. Thanks.