You can divide up the display into separately scrollable viewports. You can set up the following configurations:
The viewports allow you to display different parts of a very large spreadsheet in a very limited viewing area. You can add, remove, and customize viewports programmatically, and you can allow your end user to create and use viewports.
For an end user to create a viewport, the end user can click on the split box and drag it to the desired location. To allow the end user to divide the display, set the policy for displaying the split boxes. The end user can create multiple viewports in either orientation. You can allow split bars in only one orientation by setting the policy to display only the split box in that orientation. For more information on split boxes, refer to Customizing Split Boxes. The figure below shows how to create a viewport.
There are several properties and methods that relate to the use of viewports; many of these provide customizations programmatically as summarized in this table.
Customization | Method or Property in FpSpread (or SpreadView) class |
---|---|
Add and remove viewports | AddViewport RemoveViewport |
Set the height and width of viewports | SetViewportPreferredHeight SetViewportPreferredWidth GetViewportPreferredHeight GetViewportPreferredWidth |
Determine the viewport for a given location in the display | GetViewPortX GetViewPortY GetViewPortHeight GetViewPortWidth |
Determine the row or column of cells in a particular viewport row or viewport column | GetViewportBottomRow GetViewportLeftColumn GetViewportRectangle GetViewportTopRow SetViewportLeftColumn SetViewportTopRow |
Determine which is the active viewport | GetActiveColumnViewportIndex GetActiveRowViewportIndex SetActiveViewport |
Determine the index of a particular viewport row or viewport column | GetColumnViewportIndexFromX GetRowViewportIndexFromY |
Determine the number of viewports in either orientation | GetColumnViewportCount GetRowViewportCount |
Position the viewport in the display | ShowColumn ShowRow |
The width and height set in the SetViewportPreferredXXX method are suggested size.The Spread component attempts to layout the viewports as close as possible to the suggested sizes. However, if the sum of the suggested sizes is larger (or smaller) than the size of the component then the actual sizes of one or more of the viewports must be larger (or smaller) than the suggested size.
The width and height set by the SetViewportPreferredXXX method can set to -1 or a positive number.A -1 indicates a variable size. A positive number indicates a fixed size in pixels. When the component lays out the viewports, available space is first allocated for the fixed-size viewports. Any remaining space is evenly divided among the variable-sized viewports.
The ColumnViewportWidthChanged and the RowViewportHeightChanged events are raised any time the split boxes are moved by the end user. These events are not raised when you add a viewport programmatically; they are raised only when the user changes the width or height of a viewport.
For frozen rows and columns, the frozen row or column is a separate viewport. The leading frozen row or column is a separate viewport while the trailing frozen row or column is also a separate viewport. Indexes for the frozen viewports are as follows.
Index | Frozen Viewport |
---|---|
-1 | Leading frozen |
0 | First scrollable |
1 | Second scrollable |
n-1 | Last scrollable |
n | Trailing frozen |
For more information about frozen rows and columns, refer to Setting Fixed (Frozen) Rows or Columns.
This example adds a viewport and sets its various properties.
C# |
Copy Code
|
---|---|
fpSpread1.AddViewport(1, 2); fpSpread1.SetViewportLeftColumn(1, 3); fpSpread1.SetViewportTopRow(0, 6); fpSpread1.SetViewportPreferredHeight(0, 100); fpSpread1.SetViewportPreferredWidth(0, 100); |
Visual Basic |
Copy Code
|
---|---|
FpSpread1.AddViewport(1, 2) FpSpread1.SetViewportLeftColumn(1, 3) FpSpread1.SetViewportTopRow(0, 6) FpSpread1.SetViewportPreferredHeight(0, 100) FpSpread1.SetViewportPreferredWidth(0, 100) |