【セル型全般】 「標準モード(OperationMode.Normal)」および「行選択モード(OperationMode.RowMode)」を定義した場合、アクティブセルの背景色が選択色として表示されません

文書番号 : 33569     文書種別 : 使用方法     登録日 : 2012/11/14     最終更新日 : 2014/09/25
文書を印刷する
対象製品
SPREAD for Windows Forms 7.0J
詳細
シートに対して「標準モード」および「行選択モード」を定義した場合、アクティブセルの背景色は変更されません。これは、ユーザーに対し入力可能なセル(アクティブセル)と選択範囲の相違を明確にアナウンスするための動作となります。
上記モードにおいてもアクティブセルの背景色を変更したいような場合には、例えばアクティブセルが移動する際に発生するLeaveCellイベントを利用し、移動前および移動後のセルの背景色を適宜変更するような方法をご検討ください。以下のサンプルコードでは、「行選択モード」を定義した際にアクティブセルの背景色も変更しています。

◎サンプルコード(VB)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  FpSpread1.ActiveSheet.OperationMode = FarPoint.Win.Spread.OperationMode.RowMode
  FpSpread1.ActiveSheet.SelectionStyle = FarPoint.Win.Spread.SelectionStyles.SelectionColors
  FpSpread1.ActiveSheet.SelectionBackColor = Color.SkyBlue
  FpSpread1.ActiveSheet.ActiveCell.BackColor = Color.SkyBlue
End Sub

Private Sub FpSpread1_LeaveCell(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.LeaveCellEventArgs) Handles FpSpread1.LeaveCell
  ' 移動前セルの背景色をリセット
  FpSpread1.ActiveSheet.Cells(e.Row, e.Column).ResetBackColor()

  ' 移動後セルの背景色を設定
  FpSpread1.ActiveSheet.Cells(e.NewRow, e.NewColumn).BackColor = Color.SkyBlue
End Sub


◎サンプルコード(C#)
private void Form1_Load(object sender, EventArgs e)
{
  fpSpread1.ActiveSheet.OperationMode = FarPoint.Win.Spread.OperationMode.RowMode;
  fpSpread1.ActiveSheet.SelectionStyle = FarPoint.Win.Spread.SelectionStyles.SelectionColors;
  fpSpread1.ActiveSheet.SelectionBackColor = Color.SkyBlue;
  fpSpread1.ActiveSheet.ActiveCell.BackColor = Color.SkyBlue;
}

void fpSpread1_LeaveCell(object sender, FarPoint.Win.Spread.LeaveCellEventArgs e)
{
  // 移動前セルの背景色をリセット
  fpSpread1.ActiveSheet.Cells[e.Row, e.Column].ResetBackColor();

  // 移動後セルの背景色を設定
  fpSpread1.ActiveSheet.Cells[e.NewRow, e.NewColumn].BackColor = Color.SkyBlue;
}
関連情報
キーワード
「選択セル」