ID Number: Q80849
1.00
WINDOWS
buglist1.00
Summary:
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.
This information applies to the Grid custom control provided with
Microsoft Professional Toolkit for Microsoft Visual Basic programming
system version 1.0 for Windows.
More Information:
The CellSelected property returns True (-1) if the current cell is
within the grid's selected region; otherwise, CellSelected returns
False (0).
Workaround
----------
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:
Grid1.Text = "hello"
Grid1.Col = Grid1.SelColStart
Grid1.Row = Grid1.SelRowStart
' Length of Text is 5
MsgBox "Len(Text)=" + Format$(Len(Grid1.Text))
Steps to Reproduce Problem
--------------------------
1. Run Visual Basic or, if Visual Basic is already running, choose New
Project from the File menu (ALT, F, N). Form1 will be created by
default.
2. From the File menu, choose Add File, and select GRID.VBX. The Grid
tool will appear in the Toolbox.
3. Select the Grid tool from the Toolbox, and place a grid named
Grid1 on Form1.
4. On the Properties bar, set the grid properties Cols and Rows each
to 4.
5. Size the grid so that you can see all the cells.
6. 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 = "hello"
' Length of Text is 0, not 5
Show
MsgBox "Len(Text)=" + Format$(Len(Grid1.Text))
End Sub
7. Press F5 to run the program.
Additional reference words: 1.00