通过Point To Row Column调用节点 + 事件结构 + 属性节点,可实现点击单元格时禁用 Table(防止修改)、点击滚动条时启用 Table(允许拖动)操作,以下是完整说明:
一、概述
利用Point To Row Column判断点击位置(单元格 / 滚动条),通过Disabled属性节点动态切换 Table 的启用状态:
点击单元格:设置 Table 为Disabled=True(禁止编辑);
点击垂直滚动条:设置 Table 为Disabled=False(允许拖动滚动条)。

二、操作步骤
步骤 1:创建事件与调用节点
添加鼠标事件:为 Table 控件创建Mouse Down?事件分支,获取点击坐标Coords和控件引用CtrlRef;
调用 Point To Row Column 方法:
右键 Table 端子→Create→Invoke Node→Point to Row Column;
将Coords接入方法的Point输入,获取InBounds(是否在单元格内)输出。
步骤 2:判断点击区域并切换启用状态
读取 Table 尺寸属性:创建 Table 的属性节点,读取Bounds.Width和Scrollbar Thickness,计算滚动条 X 起始位置(Bounds.Width - Scrollbar Thickness);
条件判断:
若InBounds=True(点击单元格):通过属性节点设置Disabled=True;
若InBounds=False且Coords.X ≥ 滚动条X起始位置(点击滚动条):设置Disabled=False。
三、程序说明
事件输入:Table:Mouse Down事件输出CtrlRef(控件引用)和Coords(点击坐标);
方法调用:Point To Row Column方法接收CtrlRef和Coords,输出InBounds(是否在单元格)和CellPosition(单元格行列);
状态切换:通过选择结构(Disabled/Enabled),根据InBounds结果切换 Table 的Disabled属性:
点击单元格(InBounds=True)→ 设为Disabled;
点击滚动条(InBounds=False且 X 在滚动条区域)→ 设为Enabled。
重点说明
InBounds的核心作用:True代表点击单元格,False代表点击单元格外(含滚动条);
滚动条的精准判断:需结合Bounds.Width和Scrollbar Thickness计算滚动条区域,避免误判控件边缘;
交互逻辑:此方案实现了 “编辑防误触 + 滚动可操作” 的需求,既防止用户修改数据,又保留滚动条的拖动功能。


客服
小程序
公众号