The following methods allow you to modify the appearance of data in a graph and get information about current settings:
Method |
Information provided or set |
|---|---|
GetDataStyle |
The color, fill pattern, and other visual properties of a specified data point |
GetSeriesStyle |
The color, fill pattern, and other visual properties of a specified series |
SetDataStyle |
The color, fill pattern, and other visual properties for a specific data point |
SetSeriesStyle |
The color, fill pattern, and other visual properties for a series |
These Get methods return an instance of either the GraphDataStyle or GraphSeriesStyle class. The Set methods take a GraphDataStyle or GraphSeriesStyle object as an argument. Typically you use the Get method to obtain an instance of the class, specify new values for the properties you want to change, and then use the Set method to set the display properties.
Turn redrawing off
To
eliminate flicker that can occur because of interrelationships among properties,
call SetRedrawOff before calling the SetDataStyle and SetSeriesStyle methods,
then call SetRedrawOn to turn redrawing back
on and Refresh to display any pending visual
changes. For example:
dw1.SetRedrawOff() gobGraph.SetDataStyle(pointStyle) dw1.SetRedrawOn() dw1.Refresh()
The GraphSeriesStyle class has properties for background and foreground color, fill style and shade color, line color, style, and width, symbol style, and whether the data is an overlay. The GraphDataStyle class inherits from the GraphSeriesStyle class and adds a property, PieExplosionPercentage, that reports or sets the percentage that an exploded pie slice in a pie graph is moved away from the center of the pie in order to draw attention to the data.
The following example lets a user change a display property of a graph by double-clicking the property in a list view, which opens a dialog box in which the user can set properties.
Private Sub lvDataPoint_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lvDataPoint.DoubleClick
Dim lvi As ListViewItem
Dim dialog As frmChooseStyle
Dim pointStyle As Sybase.DataWindow.GraphDataStyle
Dim gobGraph As Sybase.DataWindow.GraphicObjectGraph
' data point values are not editable
If lvDataPoint.FocusedItem.Text.IndexOf("Value") _
=-1 Then
' clone the item with focus and send it off
' to dialog for processing
lvi = lvDataPoint.FocusedItem.Clone()
dialog = New frmChooseStyle(lvi)
' upon return update the real ListViewItem
' with the change
If dialog.ShowDialog() = DialogResult.OK Then
lvDataPoint.FocusedItem.SubItems.Item(1) = _
lvi.SubItems.Item(1)
' get the current data point style
gobGraph = _
CType(dw1.GetObjectByName("gr_1"), _
Sybase.DataWindow.GraphicObjectGraph)
pointStyle = _
gobGraph.GetDataStyle(cbSeries.Text, _
nupDataPoint.Value)
' update data style depending on option
' that changed
Select Case lvDataPoint.FocusedItem.Text
Case "Foreground Color"
pointStyle.ForegroundColor = _
System.Drawing.Color.FromArgb(Val("&H" + _
lvi.SubItems.Item(1).Text))
Case "Background Color"
pointStyle.BackgroundColor = _
System.Drawing.Color.FromArgb(Val("&H" + _
lvi.SubItems.Item(1).Text))
Case "Shade Color"
pointStyle.ShadeColor = _
System.Drawing.Color.FromArgb(Val("&H" + _
lvi.SubItems.Item(1).Text))
Case "Line Color"
pointStyle.LineColor = _
System.Drawing.Color.FromArgb(Val("&H" + _
lvi.SubItems.Item(1).Text))
Case "Symbol Style"
pointStyle.SymbolStyle = _
System.Enum.Parse(GetType _
(Sybase.DataWindow.SymbolStyle), _
lvi.SubItems.Item(1).Text, False)
Case "Line Style"
pointStyle.LineStyle = _
System.Enum.Parse(GetType _
(Sybase.DataWindow.LineStyle), _
lvi.SubItems.Item(1).Text, False)
Case "Fill Pattern"
pointStyle.FillStyle = _
System.Enum.Parse(GetType _
(Sybase.DataWindow.FillStyle), _
lvi.SubItems.Item(1).Text, False)
Case "Line Width"
pointStyle.LineWidth = _
Convert.ToInt32(lvi.SubItems.Item(1).Text)
End Select
' apply the data style change
gobGraph.SetDataStyle(pointStyle)
End If
End If
End Sub