作成日: 2019/05/23 最終更新日: 2019/05/23
文書種別
制限事項
詳細
非表示(IsVisible = false)の行/列を含むセル範囲に対してClearRangeメソッドを実行した場合、非表示の行/列のセルに設定されている値はクリアされずに残ります。この動作は製品の仕様に基づいた動作です。
回避方法
すべてクリアするためには、ClearRangeメソッドの実行前に一旦非表示の行/列を表示して、クリア後に再度非表示にします。下記のサンプルコードのような処理をご検討ください。
◎サンプルコード(C#)
◎サンプルコード(C#)
using GrapeCity.Windows.SpreadGrid;
public MainWindow()
{
InitializeComponent();
gcSpreadGrid1.RowCount = 10;
gcSpreadGrid1.ColumnCount = 10;
for (int i = 0; i < gcSpreadGrid1.ColumnCount; i++)
{
for(int j = 0; j < gcSpreadGrid1.RowCount; j++)
{
gcSpreadGrid1[j, i].Text = String.Format("R{0}C{1}", j + 1, i + 1);
}
}
gcSpreadGrid1.Columns[1].IsVisible = false;
gcSpreadGrid1.Rows[1].IsVisible = false;
}
private void gcSpreadGrid1_KeyDown(object sender, KeyEventArgs e)
{
if(e.Key == Key.F1)
{
//gcSpreadGrid1.ClearRange(0, 0, gcSpreadGrid1.RowCount, gcSpreadGrid1.ColumnCount);
//非表示行/列を一旦表示してClearRangeメソッドを実行したあと再度非表示にします。
ClearRangeEx(gcSpreadGrid1, 0, 0, gcSpreadGrid1.RowCount, gcSpreadGrid1.ColumnCount);
gcSpreadGrid1.Columns[1].IsVisible = true;
gcSpreadGrid1.Rows[1].IsVisible = true;
}
}
private void ClearRangeEx(GcSpreadGrid sg, int row, int column, int rowCount, int columnCount)
{
var hiddenColumns = (from c in sg.Columns where !c.IsVisible select c).ToList();
var hiddenRows = (from r in sg.Rows where !r.IsVisible select r).ToList();
foreach (var item in hiddenColumns)
{
item.IsVisible = true;
}
foreach (var item in hiddenRows)
{
item.IsVisible = true;
}
sg.ClearRange(row, column, rowCount, columnCount);
foreach (var item in hiddenColumns)
{
item.IsVisible = false;
}
foreach (var item in hiddenRows)
{
item.IsVisible = false;
}
}
旧文書番号
83992