啷个里个啷 发表于 2022-11-21 08:52:15

【v12.45】【如何结束Cell的编辑状态】

本帖最后由 啷个里个啷 于 2022-11-21 10:50 编辑

以如下表格为例子,表格数据是动态加载的,列是固定的。其中C列是可编辑列,但是只有部分行的该列可编辑,

假设苹果行我不想让用户可以操作编辑,其他行可以操作编辑录入。
      我试着在表格的EditModeStarting事件中,判定ActiveRow和ActiveColumn是我不想开放编辑的单元格时,就执行StopCellEditing()方法,希望可以直接退出编辑模式。虽然确实结束了,但是它还会进入EditModeOff事件中(我需要在这个事件中对其他可输入行的输入值做处理)。
      有什么其他方式可以直接限制这个单元格不可操作吗?比如我试着查找通过代码设置单元格只读,但是没有找到

Richard.Ma 发表于 2022-11-21 08:52:16

:hjyzw:EditModeStarting事件中来去取消进入编辑完全没有问题。

另外,也可以通过表单保护来禁止编辑,将单元格默认的locked属性设置为false,仅设置需要禁止编辑的单元格locked属性为ture,然后设置sheet表单保护即可

啷个里个啷 发表于 2022-11-21 10:49:40

自己找到了实现方法,直接使用事件的取消就好了,相当于对于spread表格而言,没有进入编辑模式,后续就也不会触发编辑结束事件了


private void fpsBargaining_EditModeStarting(object sender, EditModeStartingEventArgs e)
{
            //是否允许编辑
            bool isCanEdit = false;
            
            if (允许编辑时)
            {
                isCanEdit = true;
            }
            
            if (!isCanEdit)
            {
                //退出编辑
                e.Cancel = true;
                return;
            }
            else
            {
                //自定义处理
            }
}

页: [1]
查看完整版本: 【v12.45】【如何结束Cell的编辑状态】