作成日: 2021/12/02 最終更新日: 2021/12/02
文書種別
使用方法
詳細
軸スクロールバー(AxisScrollBar)によるスクロールは、軸(Axis)のMaxおよびMinを調整することで実現しています。
ただし、事前に軸のMaxとMinを指定していたとしても、チャートに軸スクロールバーを設定した時点でこれらの値は破棄されます。軸スクロールバーは、データが存在する範囲に基づきその最大値と最小値が自動調整されます。この最大値と最小値は変更することはできません。
この後、軸スクロールバーの範囲を指定する必要がある場合は、AxisクラスのMinとMaxではなく、AxisScrollBarのLowerValueとUpperValueを使用します。これにより、軸スクロールバーのつまみを使って範囲を変更した時と同様に、表示されるチャートの範囲を変更できます。
なお、LowerValueとUpperValueは、データの最小値よりも小さな値、または最大値よりも大きな値を設定できません。
この動作を確認するためのサンプルコードを、以下に記載します。
※フォーム上にFlexChart、CheckBox、Buttonを配置し、以下の手順で動作をご確認ください。
ただし、事前に軸のMaxとMinを指定していたとしても、チャートに軸スクロールバーを設定した時点でこれらの値は破棄されます。軸スクロールバーは、データが存在する範囲に基づきその最大値と最小値が自動調整されます。この最大値と最小値は変更することはできません。
この後、軸スクロールバーの範囲を指定する必要がある場合は、AxisクラスのMinとMaxではなく、AxisScrollBarのLowerValueとUpperValueを使用します。これにより、軸スクロールバーのつまみを使って範囲を変更した時と同様に、表示されるチャートの範囲を変更できます。
なお、LowerValueとUpperValueは、データの最小値よりも小さな値、または最大値よりも大きな値を設定できません。
この動作を確認するためのサンプルコードを、以下に記載します。
※フォーム上にFlexChart、CheckBox、Buttonを配置し、以下の手順で動作をご確認ください。
・サンプルを実行します。
・CheckBoxのチェックをONにします。
(結果)Y軸スクロールバーが表示されます。

・「軸スクロールバーの範囲変更」Buttonをクリックします。
(結果)Y軸の範囲が「40~60」に変わります。

・CheckBoxのチェックをOFFにします。
(結果)Y軸スクロールバーが非表示になり、Y軸の範囲が「20~80」になります。

◎サンプルコード(VB)
(結果)Y軸スクロールバーが表示されます。

・「軸スクロールバーの範囲変更」Buttonをクリックします。
(結果)Y軸の範囲が「40~60」に変わります。

・CheckBoxのチェックをOFFにします。
(結果)Y軸スクロールバーが非表示になり、Y軸の範囲が「20~80」になります。

◎サンプルコード(VB)
Imports C1.Win.Chart
Imports C1.Win.Chart.Interaction
Public Class Form1
Private yAxisScrollbar As AxisScrollbar
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' データの作成
Dim dt As New DataTable()
dt.Columns.AddRange({
New DataColumn("X", GetType(Double)),
New DataColumn("Y", GetType(Double))
})
For i = 0 To 99
dt.Rows.Add(i, i)
Next
dt.AcceptChanges()
' チャートの設定
FlexChart1.DataSource = dt
FlexChart1.ChartType = C1.Chart.ChartType.LineSymbols
FlexChart1.Series.Clear()
FlexChart1.Series.Add(New Series() With {
.BindingX = "X",
.Binding = "Y"
})
' Y軸範囲の設定
FlexChart1.AxisY.Min = 20
FlexChart1.AxisY.Max = 80
End Sub
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked Then
' AxisScrollbarの設定
If yAxisScrollbar Is Nothing Then
yAxisScrollbar = New AxisScrollbar(FlexChart1.AxisY)
End If
Else
' AxisScrollbarの解除
yAxisScrollbar.Dispose()
yAxisScrollbar = Nothing
' Y軸範囲の設定
FlexChart1.AxisY.Min = 20
FlexChart1.AxisY.Max = 80
End If
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If Not yAxisScrollbar Is Nothing Then
yAxisScrollbar.LowerValue = 40
yAxisScrollbar.UpperValue = 60
End If
End Sub
End Class
◎サンプルコード(C#)
using C1.Win.Chart;
using C1.Win.Chart.Interaction;
namespace C1FlexChart_AxisScrollbar
{
public partial class Form1 : Form
{
AxisScrollbar yAxisScrollbar;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// データの作成
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] {
new DataColumn("X", typeof(Double)),
new DataColumn("Y", typeof(Double))
});
for (int i = 0; (i <= 99); i++)
{
dt.Rows.Add(i, i);
}
dt.AcceptChanges();
// チャートの設定
flexChart1.DataSource = dt;
flexChart1.ChartType = C1.Chart.ChartType.LineSymbols;
flexChart1.Series.Clear();
Series sr = new Series();
sr.BindingX = "X";
sr.Binding = "Y";
flexChart1.Series.Add(sr);
// Y軸範囲の設定
flexChart1.AxisY.Min = 20;
flexChart1.AxisY.Max = 80;
}
private void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
if (CheckBox1.Checked)
{
// AxisScrollbarの設定
if ((yAxisScrollbar == null))
{
yAxisScrollbar = new AxisScrollbar(flexChart1.AxisY);
}
}
else
{
// AxisScrollbarの解除
yAxisScrollbar.Dispose();
yAxisScrollbar = null;
// Y軸範囲の設定
flexChart1.AxisY.Min = 20;
flexChart1.AxisY.Max = 80;
}
}
private void Button1_Click(object sender, EventArgs e)
{
if (!(yAxisScrollbar == null))
{
yAxisScrollbar.LowerValue = 40;
yAxisScrollbar.UpperValue = 60;
}
}
}
}