spread内 行移动
本帖最后由 江故里 于 2024-9-20 09:00 编辑spread 黄色行往下移动的时候 TSUIKA列的值还存在 DEL列的值也存在
但是 黄色行往上移动的时候TSUIKA列的值就变成空了但是DEL列的值存在
这是什么原因造成的也没对这一列进行不同的设置
用的代码是 spdList_Sheet1.MoveRow(downVisibleRowIndex, selectedRowIndexStart, selectedRowCount, true);
请将你说的这个文件上传上来,并给一下对应你提到的向上移动和向下移动的MoveRow代码(包含参数的具体代码) 本帖最后由 江故里 于 2024-9-20 11:22 编辑
Richard.Ma 发表于 2024-9-19 17:38
请将你说的这个文件上传上来,并给一下对应你提到的向上移动和向下移动的MoveRow代码(包含参数的具体代码 ...
用的是 v11
spdList_Sheet1.Protect = false;
spdList_Sheet1.Cells.Locked = false;44行为上移行
private void spreadRowMove()
{
CellRange[] cellRanges = spdList_Sheet1.GetSelections();
if (cellRanges.Length <= 0)
return;
cellRanges = cellRanges.OrderBy(c => c.Row).ToArray();
CellRange cellRange = cellRanges;
int selectedRowIndexStart = cellRange.Row;
int selectedRowCount = cellRange.RowCount;
for (int i = 1; i < cellRanges.Length; i++)
{
CellRange c = cellRanges;
if (c.Row > selectedRowIndexStart + selectedRowCount)
{
int rowsBetweenRanges = c.Row - selectedRowIndexStart - selectedRowCount;
for (int j = 0; j < rowsBetweenRanges; j++)
{
if (spdList_Sheet1.Rows.Visible == true)
return;
else
selectedRowCount = selectedRowCount + 1;
}
}
else
selectedRowCount = selectedRowCount + c.RowCount;
}
//一番下の行を選択する場合、処理なし
if (selectedRowIndexStart + selectedRowCount >= spdList_Sheet1.RowCount)
return;
//選択されている行の下の行番号を取得
int downVisibleRowIndex = -1;
for (int i = 0; i < spdList_Sheet1.RowCount - selectedRowIndexStart - selectedRowCount; i++)
{
if (spdList_Sheet1.Rows.Visible == true)
{
downVisibleRowIndex = selectedRowIndexStart + selectedRowCount + i;
break;
}
else
selectedRowCount = selectedRowCount + 1;
}
if (downVisibleRowIndex == -1)
return;
//移動
spdList_Sheet1.MoveRow(downVisibleRowIndex, selectedRowIndexStart, 1, true);
spdList_Sheet1.ClearSelection();
spdList_Sheet1.ActiveRowIndex = selectedRowIndexStart + 1;
spdList_Sheet1.AddSelection(selectedRowIndexStart + 1, 0, selectedRowCount, spdList_Sheet1.ColumnCount);
isChange = true;
}
不走 spdList_Sheet1.MoveRow(downVisibleRowIndex, selectedRowIndexStart, 1, true);这句代码的话tsuikaKubunIndex列当前单元格能够正常赋值 走了之后 locked = true; 值清空,再改回 locked =false 也无法赋值 你给的这些代码我是没法直接运行起来的。里面的一些参数都是你在其他地方定义的。
如果必须要在你这些代码下才能复现问题的话,请给一个能复现问题的完整demo过来
页:
[1]