MESCIUS SPREAD for Windows Forms 17.0J サンプルコード集
選択されたタイミングを取得する(チャート全体)

シート上のチャートオブジェクトを選択した場合にはShapeActicatedイベントが発生するため、FpSpreadクラスのActiveWindowlessObjectプロパティとの併用により、現在選択されているオブジェクトの属性を取得することができます。
なお、現在選択されているチャートやシェイプが存在しない場合、ActiveWindowlessObjectプロパティの値はNothing(C#ではnull)となります。

【実行例】

チャート

出力例

チャート チャート

チャートが選択されました
選択されたチャートは:FarPoint.Win.Chart.LineSeriesです

チャートが選択されました
選択されたチャートは:FarPoint.Win.Chart.ClusteredBarSeriesです

 private void Form1_Load(object sender, System.EventArgs e)
 {

   // データを設定します
   fpSpread1.Sheets[0].Cells[0, 1].Value = "L1";
   fpSpread1.Sheets[0].Cells[0, 2].Value = "L2";
   fpSpread1.Sheets[0].Cells[0, 3].Value = "L3";

   fpSpread1.Sheets[0].Cells[1, 0].Value = "1Q";
   fpSpread1.Sheets[0].Cells[2, 0].Value = "2Q";
   fpSpread1.Sheets[0].Cells[3, 0].Value = "3Q";
   fpSpread1.Sheets[0].Cells[4, 0].Value = "4Q";

   fpSpread1.Sheets[0].Cells[1, 1].Value = 50;
   fpSpread1.Sheets[0].Cells[2, 1].Value = 30;
   fpSpread1.Sheets[0].Cells[3, 1].Value = 20;
   fpSpread1.Sheets[0].Cells[4, 1].Value = 40;

   fpSpread1.Sheets[0].Cells[1, 2].Value = 30;
   fpSpread1.Sheets[0].Cells[2, 2].Value = 15;
   fpSpread1.Sheets[0].Cells[3, 2].Value = 50;
   fpSpread1.Sheets[0].Cells[4, 2].Value = 20;

   fpSpread1.Sheets[0].Cells[1, 3].Value = 10;
   fpSpread1.Sheets[0].Cells[2, 3].Value = 40;
   fpSpread1.Sheets[0].Cells[3, 3].Value = 25;
   fpSpread1.Sheets[0].Cells[4, 3].Value = 25;

   fpSpread1.Sheets[0].Cells[0, 6].Value = "B1";
   fpSpread1.Sheets[0].Cells[0, 7].Value = "B2";
   fpSpread1.Sheets[0].Cells[0, 8].Value = "B3";

   fpSpread1.Sheets[0].Cells[1, 5].Value = "1Q";
   fpSpread1.Sheets[0].Cells[2, 5].Value = "2Q";
   fpSpread1.Sheets[0].Cells[3, 5].Value = "3Q";
   fpSpread1.Sheets[0].Cells[4, 5].Value = "4Q";

   fpSpread1.Sheets[0].Cells[1, 6].Value = 1050;
   fpSpread1.Sheets[0].Cells[2, 6].Value = 1500;
   fpSpread1.Sheets[0].Cells[3, 6].Value = 2300;
   fpSpread1.Sheets[0].Cells[4, 6].Value = 3500;

   fpSpread1.Sheets[0].Cells[1, 7].Value = 3000;
   fpSpread1.Sheets[0].Cells[2, 7].Value = 2500;
   fpSpread1.Sheets[0].Cells[3, 7].Value = 3200;
   fpSpread1.Sheets[0].Cells[4, 7].Value = 3300;

   fpSpread1.Sheets[0].Cells[1, 8].Value = 4000;
   fpSpread1.Sheets[0].Cells[2, 8].Value = 1500;
   fpSpread1.Sheets[0].Cells[3, 8].Value = 2000;
   fpSpread1.Sheets[0].Cells[4, 8].Value = 2300;

   // データ領域およスタイルを指定してチャートを設定します
   FarPoint.Win.Spread.Model.CellRange rangeline = new FarPoint.Win.Spread.Model.CellRange(0, 0, 5, 4);
   fpSpread1.Sheets[0].AddChart(rangeline, typeof(FarPoint.Win.Chart.LineSeries), 250, 200, 5, 120, FarPoint.Win.Chart.ChartViewType.View2D, true);

   // データ領域およスタイルを指定してチャートを設定します
   FarPoint.Win.Spread.Model.CellRange rangebar = new FarPoint.Win.Spread.Model.CellRange(0, 5, 5, 4);

   fpSpread1.Sheets[0].AddChart(rangebar, typeof(FarPoint.Win.Chart.ClusteredBarSeries), 250, 200, 270, 120, FarPoint.Win.Chart.ChartViewType.View2D, true);

 }
 private void fpSpread1_ShapeActivated(object sender, EventArgs e)
 {

   if (((FarPoint.Win.Spread.FpSpread)sender).ActiveWindowlessObject is FarPoint.Win.Spread.Chart.SpreadChart)
   {
      // チャートオブジェクト取得します
      FarPoint.Win.Spread.Chart.SpreadChart spreadChart = (FarPoint.Win.Spread.Chart.SpreadChart)((FarPoint.Win.Spread.FpSpread)sender).ActiveWindowlessObject;

      if (spreadChart != null)
      {
         Console.WriteLine("チャートが選択されました");
         Console.WriteLine("選択されたチャートは:" + spreadChart.Model.PlotAreas[0].Series[0].ToString() + "です");
      }
   }

 }
 Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load

   ' データを設定します
   FpSpread1.Sheets(0).Cells(0, 1).Value = "L1"
   FpSpread1.Sheets(0).Cells(0, 2).Value = "L2"
   FpSpread1.Sheets(0).Cells(0, 3).Value = "L3"

   FpSpread1.Sheets(0).Cells(1, 0).Value = "1Q"
   FpSpread1.Sheets(0).Cells(2, 0).Value = "2Q"
   FpSpread1.Sheets(0).Cells(3, 0).Value = "3Q"
   FpSpread1.Sheets(0).Cells(4, 0).Value = "4Q"

   FpSpread1.Sheets(0).Cells(1, 1).Value = 50
   FpSpread1.Sheets(0).Cells(2, 1).Value = 30
   FpSpread1.Sheets(0).Cells(3, 1).Value = 20
   FpSpread1.Sheets(0).Cells(4, 1).Value = 40

   FpSpread1.Sheets(0).Cells(1, 2).Value = 30
   FpSpread1.Sheets(0).Cells(2, 2).Value = 15
   FpSpread1.Sheets(0).Cells(3, 2).Value = 50
   FpSpread1.Sheets(0).Cells(4, 2).Value = 20

   FpSpread1.Sheets(0).Cells(1, 3).Value = 10
   FpSpread1.Sheets(0).Cells(2, 3).Value = 40
   FpSpread1.Sheets(0).Cells(3, 3).Value = 25
   FpSpread1.Sheets(0).Cells(4, 3).Value = 25

   FpSpread1.Sheets(0).Cells(0, 6).Value = "B1"
   FpSpread1.Sheets(0).Cells(0, 7).Value = "B2"
   FpSpread1.Sheets(0).Cells(0, 8).Value = "B3"

   FpSpread1.Sheets(0).Cells(1, 5).Value = "1Q"
   FpSpread1.Sheets(0).Cells(2, 5).Value = "2Q"
   FpSpread1.Sheets(0).Cells(3, 5).Value = "3Q"
   FpSpread1.Sheets(0).Cells(4, 5).Value = "4Q"

   FpSpread1.Sheets(0).Cells(1, 6).Value = 1050
   FpSpread1.Sheets(0).Cells(2, 6).Value = 1500
   FpSpread1.Sheets(0).Cells(3, 6).Value = 2300
   FpSpread1.Sheets(0).Cells(4, 6).Value = 3500

   FpSpread1.Sheets(0).Cells(1, 7).Value = 3000
   FpSpread1.Sheets(0).Cells(2, 7).Value = 2500
   FpSpread1.Sheets(0).Cells(3, 7).Value = 3200
   FpSpread1.Sheets(0).Cells(4, 7).Value = 3300

   FpSpread1.Sheets(0).Cells(1, 8).Value = 4000
   FpSpread1.Sheets(0).Cells(2, 8).Value = 1500
   FpSpread1.Sheets(0).Cells(3, 8).Value = 2000
   FpSpread1.Sheets(0).Cells(4, 8).Value = 2300

   ' データ領域およスタイルを指定してチャートを設定します
   Dim rangeline As New FarPoint.Win.Spread.Model.CellRange(0, 0, 5, 4)
   FpSpread1.Sheets(0).AddChart(rangeline, GetType(FarPoint.Win.Chart.LineSeries), 250, 200, 5, 120, FarPoint.Win.Chart.ChartViewType.View2D, True)

   ' データ領域およスタイルを指定してチャートを設定します
   Dim rangebar As New FarPoint.Win.Spread.Model.CellRange(0, 5, 5, 4)
   FpSpread1.Sheets(0).AddChart(rangebar, GetType(FarPoint.Win.Chart.ClusteredBarSeries), 250, 200, 270, 120, FarPoint.Win.Chart.ChartViewType.View2D, True)

 End Sub

 Private Sub FpSpread1_ShapeActivated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles FpSpread1.ShapeActivated

   If TypeOf (CType(sender, FarPoint.Win.Spread.FpSpread).ActiveWindowlessObject) Is FarPoint.Win.Spread.Chart.SpreadChart Then
      ' チャートオブジェクト取得します
      Dim spreadChart As FarPoint.Win.Spread.Chart.SpreadChart = CType(CType(sender, FarPoint.Win.Spread.FpSpread).ActiveWindowlessObject, FarPoint.Win.Spread.Chart.SpreadChart)

      If Not spreadChart Is Nothing Then
         Console.WriteLine("チャートが選択されました")
         Console.WriteLine("選択されたチャートは:" + spreadChart.Model.PlotAreas(0).Series(0).ToString() + "です")
      End If
   End If

 End Sub

 

 


© MESCIUS inc. All rights reserved.