Microsoft KB Archive/80849

= PRB: Grid Custom Control: Surprising Results when FillStyle=1 =

Article ID: 80849

Article Last Modified on 11/18/2003

-

APPLIES TO


 * Microsoft Visual Basic 2.0 Professional Edition
 * Microsoft Visual Basic 3.0 Professional Edition
 * Microsoft Professional Toolkit for Microsoft Visual Basic programming system for Windows

-



This article was previously published under Q80849



SYMPTOMS
When the Grid custom control has its FillStyle property set to 1 (repeat), assignments to the Text and Picture properties store a value in all the cells within the selected region (determined by SelStartCol, SelStartRow, SelEndCol, and SelEndRow). However, the value returned from Text and Picture comes from the current cell (determined by the Col and Row properties).

This behavior can produce surprising results when the current cell is located outside the selected region.

When FillStyle is 0 (single), the Text and Picture properties store to the current cell and retrieve from the current cell.



RESOLUTION
To cause the Text property to return the same value assigned when FillStyle=1, set the current cell location to a cell inside the selected region. For example, use this code: Grid1.Text = &quot;hello&quot; Grid1.Col = Grid1.SelColStart Grid1.Row = Grid1.SelRowStart ' Length of Text is 5 MsgBox &quot;Len(Text)=&quot; + Format$(Len(Grid1.Text))



STATUS
This behavior is by design.



MORE INFORMATION
The CellSelected property returns True (-1) if the current cell is within the grid's selected region; otherwise, CellSelected returns False (0).

Steps to Reproduce Problem
 Start Visual Basic, or if Visual Basic is already running, choose New Project from the File menu (ALT, F, N). Form1 is created by default. From the File menu, choose Add File, and select GRID.VBX. The Grid tool will appear in the Toolbox. Select the Grid tool from the Toolbox, and place a grid (Grid1) on Form1. On the Properties bar (Properties window in Visual Basic version 2.0), set the grid properties Cols and Rows each to 4. In Visual Basic 2.0, you will need to press the F4 key to display the Properties Window, so you can set the Cols and Rows properties. Size the grid so that you can see all the cells.  Double-click the form to bring up the Code window. In the Procedure box, select Load. Enter the following code: Sub Form_Load Grid1.FillStyle = 1    ' Repeat.

' Set selected region. Grid1.SelStartCol = 2 Grid1.SelStartRow = 2 Grid1.SelEndCol = 3 Grid1.SelEndRow = 3

' Set current cell, outside of selected region. Grid1.Col = 1 Grid1.Row = 1

' Assign to Text. Grid1.Text = &quot;hello&quot;

' Length of Text is 0, not 5. Show MsgBox &quot;Len(Text)=&quot; + Format$(Len(Grid1.Text)) End Sub </li> Press the F5 key to run the program.</li></ol>

Additional query words: 1.00 2.00 3.00

Keywords: kbprb KB80849

-

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

© Microsoft Corporation. All rights reserved.