作成日: 2020/08/06 最終更新日: 2020/08/06
文書種別
技術情報
詳細
非表示列や非表示行を設定し、その列や行を含んだ範囲でアウトラインを設定すると、アウトラインの開閉操作により非表示設定が解除されます。これはExcel動作に合わせたSPREADの仕様上の動作となります。
非表示設定を維持したままアウトラインの開閉を行いたい場合には、あらかじめ非表示設定をした行列に対してTagを設定しておき、RangeGroupStateChangedイベントにて非表示設定を再設定する方法が考えられます。
◎サンプルコード(VB)
◎サンプルコード(C#)
非表示設定を維持したままアウトラインの開閉を行いたい場合には、あらかじめ非表示設定をした行列に対してTagを設定しておき、RangeGroupStateChangedイベントにて非表示設定を再設定する方法が考えられます。
◎サンプルコード(VB)
Imports FarPoint.Win.Spread
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
'アウトライン開始インデックス
Dim start As Integer = 0
'グループ化する列数
Dim count As Integer = 5
'アウトライン設定
FpSpread1.ActiveSheet.AddRangeGroup(start, count, False)
FpSpread1.ActiveSheet.AddRangeGroup(start, count, True)
'非表示列の幅変更用インジケータの非表示
FpSpread1.ResizeZeroIndicator = FarPoint.Win.Spread.ResizeZeroIndicator.Default
'非表示に設定
FpSpread1.ActiveSheet.Columns(3).Visible = False
FpSpread1.ActiveSheet.Rows(3).Visible = False
'非表示設定した行と列にTagを設定しておく
FpSpread1.ActiveSheet.Columns(3).Tag = False
FpSpread1.ActiveSheet.Rows(3).Tag = False
End Sub
Private Sub FpSpread1_RangeGroupStateChanged(sender As Object, e As RangeGroupStateChangedEventArgs) Handles FpSpread1.RangeGroupStateChanged
For i = e.RangeGroupInfo.Start To e.RangeGroupInfo.End
If Not IsNothing((e.View.GetSheetView().Columns(i).Tag)) Then
e.View.GetSheetView().SetColumnVisible(i, False)
End If
If Not IsNothing((e.View.GetSheetView().Rows(i).Tag)) Then
e.View.GetSheetView().SetRowVisible(i, False)
End If
Next
End Sub
End Class
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
'アウトライン開始インデックス
Dim start As Integer = 0
'グループ化する列数
Dim count As Integer = 5
'アウトライン設定
FpSpread1.ActiveSheet.AddRangeGroup(start, count, False)
FpSpread1.ActiveSheet.AddRangeGroup(start, count, True)
'非表示列の幅変更用インジケータの非表示
FpSpread1.ResizeZeroIndicator = FarPoint.Win.Spread.ResizeZeroIndicator.Default
'非表示に設定
FpSpread1.ActiveSheet.Columns(3).Visible = False
FpSpread1.ActiveSheet.Rows(3).Visible = False
'非表示設定した行と列にTagを設定しておく
FpSpread1.ActiveSheet.Columns(3).Tag = False
FpSpread1.ActiveSheet.Rows(3).Tag = False
End Sub
Private Sub FpSpread1_RangeGroupStateChanged(sender As Object, e As RangeGroupStateChangedEventArgs) Handles FpSpread1.RangeGroupStateChanged
For i = e.RangeGroupInfo.Start To e.RangeGroupInfo.End
If Not IsNothing((e.View.GetSheetView().Columns(i).Tag)) Then
e.View.GetSheetView().SetColumnVisible(i, False)
End If
If Not IsNothing((e.View.GetSheetView().Rows(i).Tag)) Then
e.View.GetSheetView().SetRowVisible(i, False)
End If
Next
End Sub
End Class
◎サンプルコード(C#)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// アウトライン開始インデックス
int start = 0;
// グループ化する列数
int count = 5;
// アウトライン設定
fpSpread1.ActiveSheet.AddRangeGroup(start, count, false);
fpSpread1.ActiveSheet.AddRangeGroup(start, count, true);
// 非表示列の幅変更用インジケータの非表示
fpSpread1.ResizeZeroIndicator = FarPoint.Win.Spread.ResizeZeroIndicator.Default;
// 非表示に設定
fpSpread1.ActiveSheet.Columns[3].Visible = false;
fpSpread1.ActiveSheet.Rows[3].Visible = false;
//非表示設定した行と列にTagを設定しておく
fpSpread1.ActiveSheet.Columns[3].Tag = false;
fpSpread1.ActiveSheet.Rows[3].Tag = false;
}
private void fpSpread1_RangeGroupStateChanged(object sender, FarPoint.Win.Spread.RangeGroupStateChangedEventArgs e)
{
for (var i = e.RangeGroupInfo.Start; i <= e.RangeGroupInfo.End; i++)
{
if (e.View.GetSheetView().Columns[i].Tag != null)
{
e.View.GetSheetView().SetColumnVisible(i, false);
}
if (e.View.GetSheetView().Rows[i].Tag != null)
{
e.View.GetSheetView().SetRowVisible(i, false);
}
}
}
}
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// アウトライン開始インデックス
int start = 0;
// グループ化する列数
int count = 5;
// アウトライン設定
fpSpread1.ActiveSheet.AddRangeGroup(start, count, false);
fpSpread1.ActiveSheet.AddRangeGroup(start, count, true);
// 非表示列の幅変更用インジケータの非表示
fpSpread1.ResizeZeroIndicator = FarPoint.Win.Spread.ResizeZeroIndicator.Default;
// 非表示に設定
fpSpread1.ActiveSheet.Columns[3].Visible = false;
fpSpread1.ActiveSheet.Rows[3].Visible = false;
//非表示設定した行と列にTagを設定しておく
fpSpread1.ActiveSheet.Columns[3].Tag = false;
fpSpread1.ActiveSheet.Rows[3].Tag = false;
}
private void fpSpread1_RangeGroupStateChanged(object sender, FarPoint.Win.Spread.RangeGroupStateChangedEventArgs e)
{
for (var i = e.RangeGroupInfo.Start; i <= e.RangeGroupInfo.End; i++)
{
if (e.View.GetSheetView().Columns[i].Tag != null)
{
e.View.GetSheetView().SetColumnVisible(i, false);
}
if (e.View.GetSheetView().Rows[i].Tag != null)
{
e.View.GetSheetView().SetRowVisible(i, false);
}
}
}
}
旧文書番号
85878