# dotNet.ReoGrid 扩展库 - 处理键盘事件

[请参考 - RegGrid 事件](../event/events.html)

ReoGrid 提供了 3 个新的键盘事件：

*   BeforeCellKeyDown - 单元格按键按下前触发
*   AfterCellKeyDown - 单元格按键按下后触发  
*   CellKeyUp - 单元格按键释放时触发

其中 BeforeCellKeyDown 事件有一个 `IsCancelled` 属性，如果设置为 true 可以取消内置的操作。

```aardio
import dotNet.ReoGrid;

// 获取当前工作表
var sheet1 = grid.CurrentWorksheet;

// 绑定 BeforeCellKeyDown 事件
sheet1.BeforeCellKeyDown = function(sender, e) {
    // 如果按下的是回车键，则取消默认操作
    e.IsCancelled = (e.KeyCode == System.Windows.Forms.Keys.Enter);
}
```

## 捕获单元格键盘事件

### 单元格按键释放事件(CellKeyUp)

当用户在单元格内释放按键时会触发此事件，例如：

```aardio
// 初始化工作表
function initWorksheet() {
    var sheet1 = grid.CurrentWorksheet;
    sheet1.CellKeyUp = sheet_CellKeyUp;
}

// 事件处理函数
function sheet_CellKeyUp(sender, e) {
    win.msgbox("按下的键是: " + e.KeyCode);
}
```

### 注意事项

当某些按键导致工作表进入编辑模式时，此事件不会被触发。通常字符键如 A-Z、0-9 和符号键会使单元格进入编辑模式。因此，如果单元格可编辑，有时只能处理 `BeforeCellKeyDown` 和 `AfterCellKeyDown` 事件。

## 单元格编辑事件

### AfterCellEdit 事件

当用户完成单元格编辑后会触发此事件。

另请参阅[单元格编辑](../cell/cell-edit.html)。

### 示例

在 `AfterCellEdit` 事件中将单元格数据从"文本"格式化为"[文本]"：

```aardio
var sheet1 = reoGridControl.Worksheets[0];
sheet1.AfterCellEdit = function(sender, e) {
    e.NewData = "[" + e.NewData + "]";
}
```

开始编辑单元格时：  
![151](../images/151.png)

按下回车后：  
![152](../images/152.png)

文本已被格式化。