工作表的SelectionForwardDirection属性用于决定编辑完成后焦点单元格的移动方向。默认情况下,ReoGrid会将焦点移动到同一行的下一个单元格。
// 向右移动(下一个单元格)
sheet1.SelectionForwardDirection = ReoGrid.SelectionForwardDirection.Right;

// 向下移动(下一行的单元格)
sheet1.SelectionForwardDirection = ReoGrid.SelectionForwardDirection.Down;

此外,可以通过处理以下两个事件来自定义选择位置:
这两个事件都有IsCancelled属性,可用于阻止内置的默认操作。要移动到自定义位置,代码如下:
sheet1.SelectionMovedForward = function(sender,e) e.IsCancelled = true;
sheet1.SelectionMovedBackward = function(sender,e) e.IsCancelled = true;
// 将选择移动到新位置
sheet1.SelectionRange = ReoGrid.RangePosition(sheet1.SelectionRange.Row + 1, 0, 1, 1);
可以处理BeforeCellKeyDown事件来响应用户按键操作。将IsCancelled属性设为true可阻止默认操作,并自定义选择位置。
sheet1.BeforeCellKeyDown = function(sender,e){
if(e.KeyCode == System.Windows.Forms.Keys.Enter){
e.IsCancelled = true;
// 总是移动到下一行的第一个单元格
sheet1.SelectionRange = ReoGrid.RangePosition(sheet1.SelectionRange.Row + 1, 0, 1, 1);
}
}
可以为每个工作表设置不同的选择模式:
sheet1.SelectionMode = ReoGrid.WorksheetSelectionMode.Row;
支持以下模式:
| 枚举值 | 描述 |
|---|---|
| None | 不允许选择任何内容 |
| Cell | 仅允许选择单个单元格 |
| Range | 允许选择单元格或范围 |
| Row | 总是选择整行 |
| Column | 总是选择整列 |
当用户尝试改变选择范围时,会触发BeforeSelectionRangeChange事件。通过设置事件参数的IsCancelled属性可以阻止默认操作。
以下示例展示如何限制选择的最大行数和列数:
添加BeforeSelectionRangeChange事件处理:
sheet1.BeforeSelectionRangeChange = worksheet_BeforeSelectionRangeChange;
通过修改选择结束位置来限制最大行数为5:
function worksheet_BeforeSelectionRangeChange(sender,e){
var rows = math.abs(e.StartRow - e.EndRow);
if(rows >= 5){
if(e.EndRow > e.StartRow)
e.EndRow = e.StartRow + 5 - 1;
else
e.EndRow = e.StartRow - 5 + 1;
}
}
当用户在单元格中输入数据时,ReoGrid会尝试自动格式化单元格。要禁用此行为:
sheet1.SetSettings(ReoGrid.WorksheetSettings.Edit_AutoFormatCell, false);
更多工作表设置请参考设置。
默认情况下,当用户编辑百分比类型单元格时,ReoGrid会在文本末尾添加%符号。要禁用此行为:
sheet1.SetSettings(ReoGrid.WorksheetSettings.Edit_FriendlyPercentInput, false);
更多工作表设置请参考设置。
支持的快捷键列表。
可以通过工作表的SelectionStyle属性修改选择样式。
sheet1.SelectionStyle = ReoGrid.ReoGridSelectionStyle.Default;

sheet1.SelectionStyle = ReoGrid.ReoGridSelectionStyle.FocusRect;

也可以设置为None来隐藏选择:
sheet1.SelectionStyle = ReoGrid.ReoGridSelectionStyle.None;

var workbook = grid;
workbook.SetSettings(ReoGrid.WorkbookSettings.View_ShowSheetTabControl, false);
隐藏滚动条和表头:
workbook.SetSettings(
ReoGrid.WorkbookSettings.View_ShowScrolls |
ReoGrid.WorkbookSettings.View_ShowHeaders,
false
);
隐藏行和列标题:
var sheet1 = workbook.CurrentWorksheet;
sheet1.SetSettings(ReoGrid.WorksheetSettings.View_ShowHeaders, false);
效果如下:

sheet1.SetSettings(ReoGrid.WorksheetSettings.View_ShowGridLine, false);

禁用通过鼠标调整行高和列宽:
sheet1.SetSettings(
ReoGrid.WorksheetSettings.Edit_AllowAdjustRowHeight |
ReoGrid.WorksheetSettings.Edit_AllowAdjustColumnWidth,
false
);
在此模式下,工作表中的所有编辑操作将被禁用。
sheet1.SetSettings(ReoGrid.WorksheetSettings.Edit_Readonly, true);
完整设置列表请参考设置。