aardio 文档

dotNet.ReoGrid 扩展库 - 选择与编辑

修改默认行为

修改焦点单元格移动方向为下一行而非下一单元格

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

// 向右移动(下一个单元格)
sheet1.SelectionForwardDirection = ReoGrid.SelectionForwardDirection.Right;

164

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

165

此外,可以通过处理以下两个事件来自定义选择位置:

这两个事件都有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;

161

Windows焦点样式

sheet1.SelectionStyle = ReoGrid.ReoGridSelectionStyle.FocusRect;

162

隐藏选择

也可以设置为None来隐藏选择:

sheet1.SelectionStyle = ReoGrid.ReoGridSelectionStyle.None;

163

显示/隐藏工作簿组件

隐藏工作表标签控件

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);

效果如下:

30

隐藏网格线

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

31

禁用通过鼠标调整行高和列宽:

sheet1.SetSettings(
    ReoGrid.WorksheetSettings.Edit_AllowAdjustRowHeight | 
    ReoGrid.WorksheetSettings.Edit_AllowAdjustColumnWidth, 
    false
);

只读模式

在此模式下,工作表中的所有编辑操作将被禁用。

sheet1.SetSettings(ReoGrid.WorksheetSettings.Edit_Readonly, true);

所有可用设置

完整设置列表请参考设置。

Markdown 格式