本页提供 ReoGrid 中所有可用事件的全面参考,按类别组织。

工作簿事件

可在 ReoGrid 控件(工作簿)实例上使用:

事件事件参数描述
WorksheetCreatedWorksheetCreatedEventArgs新工作表已创建
WorksheetInsertedWorksheetInsertedEventArgs工作表已插入(提供 Index
WorksheetRemovedWorksheetRemovedEventArgs工作表已移除(提供 Index
BeforeWorksheetNameChangeWorksheetNameChangingEventArgs工作表名称变更前(提供 NewName,可取消)
WorksheetNameChangedWorksheetNameChangingEventArgs工作表名称已变更
WorksheetNameBackColorChangedWorksheetEventArgs标签背景色已变更
WorksheetNameTextColorChangedWorksheetEventArgs标签文本颜色已变更
SettingsChangedEventArgs任何工作簿设置已变更
ExceptionHappenedExceptionHappenEventArgs发生内部异常(提供 ExceptionWorksheetCellPosition

操作事件

事件事件参数描述
BeforeActionPerformBeforeActionPerformEventArgs任何操作执行前(可通过 IsCancelled 取消)
ActionPerformedWorkbookActionEventArgs操作执行后(提供 Action
UndidWorkbookActionEventArgs撤销操作后
RedidWorkbookActionEventArgs重做操作后

文件 I/O 事件

事件事件参数描述
WorkbookLoadedEventArgs工作簿文件加载后
WorkbookSavedEventArgs工作簿文件保存后

工作表事件

可在单个工作表实例上使用。通过 grid.CurrentWorksheetgrid.Worksheets[index] 访问。

单元格数据事件

事件事件参数描述
CellDataChangedCellEventArgs单元格数据已变更(提供 Cell
RangeDataChangedRangeEventArgs范围中的数据已更新(提供 Range

单元格编辑事件

事件事件参数描述
BeforeCellEditCellBeforeEditEventArgs单元格进入编辑模式前(可取消,提供 EditText
AfterCellEditCellAfterEditEventArgs编辑完成后(提供 NewDataEndReasonDataFormat
CellEditTextChangingCellEditTextChangingEventArgs编辑期间文本正在变更(提供 Text
CellEditCharInputedCellEditCharInputEventArgs字符已输入(提供 InputCharCaretPositionInLineLineIndexInputText
CellValidationCellValidationEventArgs对编辑文本进行验证后(提供 FailuresIsValid

单元格鼠标事件

事件事件参数描述
CellMouseEnterCellMouseEventArgs鼠标进入单元格
CellMouseLeaveCellMouseEventArgs鼠标离开单元格
CellMouseMoveCellMouseEventArgs鼠标在单元格内移动
CellMouseDownCellMouseEventArgs鼠标按钮在单元格上按下
CellMouseUpCellMouseEventArgs鼠标按钮在单元格上释放

CellMouseEventArgs 属性:

属性类型描述
CellCell涉及的单元格
CellPositionCellPosition单元格位置
IsCancelledbool设置为 true 以取消
ButtonsMouseButtons哪个鼠标按钮
RelativePositionPoint相对于单元格的位置
AbsolutePositionPoint控件上的绝对位置
Clicksint点击次数
Deltaint鼠标滚轮增量
Capturebool是否捕获鼠标
CursorStyleCursorStyle要显示的光标样式

键盘事件

事件事件参数描述
BeforeCellKeyDownBeforeCellKeyDownEventArgs按键按下(在原生行为之前,可取消)
AfterCellKeyDownAfterCellKeyDownEventArgs按键按下(在原生行为之后)
CellKeyUpCellKeyDownEventArgs按键释放

CellKeyDownEventArgs 属性:

属性类型描述
CellCell焦点单元格
CellPositionCellPosition单元格位置
KeyCodeKeyCode按下的键

BeforeCellKeyDownEventArgs 额外包含 IsCancelled (bool)。

选区事件

事件事件参数描述
BeforeSelectionRangeChangeBeforeSelectionChangeEventArgs选区变更前(可取消,可修改)
SelectionRangeChangingRangeEventArgs选区变更中(拖动时)
SelectionRangeChangedSelectionRangeChangedEventArgs选区确定后
SelectionModeChangedEventArgs选区模式已变更
SelectionStyleChangedEventArgs选区样式已变更
SelectionForwardDirectionChangedEventArgs选区前进方向已变更
SelectionMovedForwardSelectionMovedForwardEventArgs选区向前移动(可取消)
SelectionMovedBackwardSelectionMovedBackwardEventArgs选区向后移动(可取消)
FocusPosChangedEventArgs焦点单元格位置已变更
FocusPosStyleChangedEventArgs焦点位置样式已变更
HoverPosChangedEventArgs鼠标悬停单元格已变更

详细用法参见选区

行和列事件

事件事件参数描述
RowsInsertedRowsInsertedEventArgs行已插入(提供 RowCount
RowsDeletedRowsDeletedEventArgs行已删除(提供 RowCount
ColumnsInsertedColumnsInsertedEventArgs列已插入(提供 IndexCount
ColumnsDeletedColumnsDeletedEventArgs列已删除(提供 IndexCount
RowsHeightChangedRowsHeightChangedEventArgs行高已变更(提供 RowCountHeight
ColumnsWidthChangedColumnsWidthChangedEventArgs列宽已变更(提供 IndexCountWidth
RowFiltered行上已应用筛选
RowSorted行已排序

详细信息参见行、列与标题

范围事件

事件事件参数描述
RangeMergedRangeEventArgs范围已合并
RangeUnmergedRangeEventArgs范围已取消合并
RangeStyleChangedRangeEventArgs范围上已设置样式

范围移动/复制事件

事件事件参数描述
BeforeRangeCopy选中范围复制前
AfterRangeCopy范围复制操作后
BeforeRangeMove选中范围移动前
AfterRangeMove范围移动操作后

边框事件

事件事件参数描述
BorderAddedBorderAddedEventArgs边框已设置(提供 PosStyle
BorderRemovedBorderRemovedEventArgs边框已移除(提供 Pos

大纲事件

事件事件参数描述
OutlineAddedOutlineAddedEventArgs大纲已添加
OutlineRemovedOutlineRemovedEventArgs大纲已移除
BeforeOutlineCollapseBeforeOutlineCollapseEventArgs折叠前(可取消)
AfterOutlineCollapseAfterOutlineCollapseEventArgs折叠后
BeforeOutlineExpandBeforeOutlineExpandingEventArgs展开前(可取消)
AfterOutlineExpandAfterOutlineExpandingEventArgs展开后

详细用法参见分组与大纲

冻结事件

事件类型描述
CellsFrozenEventHandler工作表已冻结
CellsUnfrozenEventHandler工作表已取消冻结

详细信息参见冻结窗格

剪贴板事件

事件事件参数描述
BeforeCopy复制操作前
AfterCopy范围已复制到剪贴板后
BeforePaste粘贴操作前
AfterPaste范围已从剪贴板粘贴后
BeforeCut剪切操作前
AfterCut范围已剪切后
OnPasteError粘贴期间发生错误

条件样式事件

事件类型描述
ConditionalStyleCellChangedEventHandler条件样式单元格已更新

详细信息参见条件样式

缩放事件

事件事件参数描述
ScaledEventArgs缩放级别已变更

其他事件

事件事件参数描述
NameChangedEventArgs工作表名称已变更
ResettedEventArgs工作表已重置
SettingsChangedSettingsChangedEventArgs工作表设置已变更

常见事件模式

可取消事件

许多”Before”事件都有 IsCancelled 属性。将其设置为 true 以阻止操作:

// 阻止单元格编辑
sheet.BeforeCellEdit += (s, e) => e.IsCancelled = true;

// 阻止大纲折叠
sheet.BeforeOutlineCollapse += (s, e) => e.IsCancelled = true;

// 阻止选区变更
sheet.BeforeSelectionRangeChange += (s, e) => e.IsCancelled = true;

将编辑限制在指定范围

var editableRange = new RangePosition(3, 1, 2, 3);

sheet.SetRangeBorders(editableRange, BorderPositions.Outside, RangeBorderStyle.BlackSolid);
sheet[2, 1] = "Edit only allowed in this range:";

sheet.BeforeCellEdit += (s, e) =>
    e.IsCancelled = !editableRange.Contains(e.Cell.Position);

41

跟踪数据变更

sheet.CellDataChanged += (s, e) =>
{
    Console.WriteLine($"Cell {e.Cell.Address} changed to: {e.Cell.Data}");
};

sheet.RangeDataChanged += (s, e) =>
{
    Console.WriteLine($"Range {e.Range.ToAddress()} data changed");
};

自定义按键处理

sheet.BeforeCellKeyDown += (s, e) =>
{
    if (e.KeyCode == KeyCode.Enter)
    {
        e.IsCancelled = true;
        // 自定义导航
        sheet.SelectRange(sheet.SelectionRange.Row + 1, 0, 1, 1);
    }
};

相关主题

这篇文章对您有帮助吗?