Microsoft KB Archive/138500

= PRB: Array-Based List Box or Combo Box Shows One Row Only =

Article ID: 138500

Article Last Modified on 2/11/2000

-

APPLIES TO


 * Microsoft Visual FoxPro 3.0 Standard Edition

-



This article was previously published under Q138500



SYMPTOMS
A list box or combo box using an array as a row source (that is, the array is given in the RowSource property) shows only the first item in the list when the form is instantiated.



CAUSE
The array in question is a property of the form or formset. The commands to create the array were contained in the Init event of the form.

This behavior occurs because of the instantiation order of objects within the form container. Usually, an array property of a form is created as a one-dimensional array, one row in height. The list box or combo box is created using this small array. Due to performance considerations, the control is not automatically resized when the array is redimensioned in the Init event of the form.



RESOLUTION
After issuing any command that redimensions the array used as a RowSource, invoke the REQUERY method of the control. The REQUERY method will cause the control to display all rows in the array.



STATUS
This behavior is by design.



Steps to Reproduce Behavior and Demonstrate Resolution
  Create a new form. Add a property with the following name: gaFonts[1]   In the Init event of the form, add this line of code: lnFonts = AFONT(ThisForm.gaFonts)   Place a list box on the form, and set these properties: RowSourceType = 5 (Array) RowSource    = ThisForm.gaFonts Name         = lstFonts  Run the form. Only one font is displayed.  Add the following line to the end of the Init event of the form: THISFORM.lstFonts.Requery </li> Rerun the form. All fonts should appear as expected.</li></ol>

Additional query words: VFoxWin

Keywords: KB138500

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.