# dotNet.ReoGrid 扩展库 - 设置

ReoGrid 提供了工作簿设置 `WorkbookSettings` 和每个工作表的设置 `WorksheetSettings`。通过这些设置，可以改变工作簿和工作表的许多默认行为。

## [工作簿设置](#workbook-settings)

可以通过工作簿实例的 `SetSettings`、`EnableSettings`、`DisableSettings` 方法来修改工作簿设置：

```aardio
// 设置参数
reoGridControl.SetSettings(WorkbookSettings 设置项, 布尔值 启用状态);
reoGridControl.EnableSettings(WorkbookSettings 设置项);
reoGridControl.DisableSetting(WorkbookSettings 设置项);
// 获取设置状态
var 状态 = reoGridControl.HasSetting(WorkbookSettings 设置项);
```

### [外观设置](#appearance)

| 设置项 | 说明 |
| :-- | :-- |
| View_ShowSheetTabControl | 是否显示[工作表标签控件](../general/sheet-tab-control/.html) |
| View_ShowScrollsShow | 是否显示所有滚动条 |
| View_ShowHorScrollShow | 是否显示水平滚动条 |
| View_ShowVerScrollShow | 是否显示垂直滚动条 |

### [脚本扩展（仅扩展包可用）](#script-extension-only-available-in-extension-package)

| 设置项 | 说明 |
| :-- | :-- |
| Script_AutoRunOnload | 决定是否在工作簿或工作表从资源加载后立即运行脚本 |
| Script_PromptBeforeAutoRun | 如果从资源加载工作簿，在自动运行脚本前向最终用户显示提示信息 |

## [工作表设置](#worksheet-settings)

可以通过工作表实例的 `SetSettings`、`EnableSettings`、`DisableSettings` 方法来修改工作表设置：

```aardio
var sheet1 = reoGridControl.CurrentWorksheet;
// 设置参数
sheet1.SetSettings(WorkbookSettings 设置项, 布尔值 启用状态);
sheet1.EnableSettings(WorkbookSettings 设置项);
sheet1.DisableSetting(WorkbookSettings 设置项);
// 获取设置状态
var 状态 = reoGridControl.HasSetting(WorkbookSettings 设置项);
```

工作表设置包含以下项目：

### [行为设置](#behavior)

| 设置项 | 说明 |
| --- | --- |
| Behavior_DoubleClickToFitRowHeight | 允许双击自动调整行高 |
| Behavior_DoubleClickToFitColumnWidth | 允许双击自动调整列宽 |
| Behavior_MouseWheelToScroll | 允许通过鼠标滚轮滚动工作表 |
| Behavior_MouseWheelToZoom | 允许通过鼠标滚轮缩放工作表 |
| Behavior_ShortcutKeyToZoom | 允许通过快捷键(Ctrl + 加号/减号)缩放工作表 |
| Behavior_DragToMoveCells | 允许通过拖动鼠标移动或复制选定区域 |
| Behavior_DragToMoveColumnHeader | 允许用户通过拖动鼠标移动整列(保留功能) |
| Behavior_ScrollToFocusCell | 允许在滚动工作表时保持焦点单元格可见 |
| Behavior_AllowUserChangingPageBreaks | 允许用户通过鼠标插入、删除或调整分页符 |

### [编辑设置](#editing)

| 设置项 | 说明 |
| --- | --- |
| Edit_Readonly | 指示工作表处于只读模式，不允许任何修改 |
| Edit_AutoFormatCell | 允许在用户编辑或输入文本后自动格式化数据 |
| Edit_FriendlyPercentInput | 允许在百分比格式的单元格中输入时显示百分号 |
| Edit_AutoAdjustRowHeight | 允许在用户增大单元格字体时自动调整行高 |
| Edit_AllowAdjustRowHeight | 允许用户通过拖动鼠标调整行高 |
| Edit_AllowAdjustColumnWidth | 允许用户通过拖动鼠标调整列宽 |
| Edit_DragSelectionToMoveCells | 允许用户通过拖拽选区来移动单元格内容 |
| Edit_DragSelectionToFillSerial | 允许用户通过拖动鼠标填充区域 |

### [外观设置](#appearance-1)

| 设置项 | 说明 |
| --- | --- |
| View_ShowColumnHeader | 显示列标题 |
| View_ShowRowHeader | 显示行标题 |
| View_ShowHorizontalRuler | 显示水平标尺(保留功能) |
| View_ShowVerticalRuler | 显示垂直标尺(保留功能) |
| View_ShowGuideLine | 显示参考线 |
| View_ShowHiddenCellLine | 允许在隐藏行标题上显示单行标记 |
| View_AllowShowRowOutlines | 如果存在大纲，允许显示行大纲 |
| View_AllowShowColumnOutlines | 如果存在大纲，允许显示列大纲 |
| View_ShowPageBreaks | 允许显示分页线 |
| View_AllowCellTextOverflow | 使单元格文本仅显示在单元格内，不覆盖相邻单元格 |
| View_ShowPrintAreasEnable | 显示打印区域的边界线 |

### [公式计算](#formula-calculation)

| 设置项 | 说明 |
| --- | --- |
| Formula_AutoUpdateReferenceCell | 允许自动更新公式引用单元格 |
| Formula_AutoPickingAddress | 允许在编辑公式时从工作表中选择和拾取地址 |
| Formula_AutoFormat | 允许自动校正、格式化和重建公式 |

## aardio 代码示例

```aardio
import dotNet.ReoGrid;

// 创建工作簿控件
var grid = ReoGrid.ReoGridControl(winform);

// 获取当前工作表
var sheet1 = grid.CurrentWorksheet;

// 启用工作簿设置 - 显示工作表标签和滚动条
grid.EnableSettings(
    ReoGrid.WorkbookSettings.View_ShowSheetTabControl |
    ReoGrid.WorkbookSettings.View_ShowScrollsShow
);

// 禁用工作簿设置 - 隐藏水平滚动条
grid.DisableSettings(ReoGrid.WorkbookSettings.View_ShowHorScrollShow);

// 检查设置状态
var hasSetting = grid.HasSetting(ReoGrid.WorkbookSettings.View_ShowVerScrollShow);

// 设置工作表行为 - 允许双击调整行高和列宽
sheet1.EnableSettings(
    ReoGrid.WorksheetSettings.Behavior_DoubleClickToFitRowHeight |
    ReoGrid.WorksheetSettings.Behavior_DoubleClickToFitColumnWidth
);

// 设置工作表编辑选项 - 允许调整行高和列宽
sheet1.SetSettings(
    ReoGrid.WorksheetSettings.Edit_AllowAdjustRowHeight |
    ReoGrid.WorksheetSettings.Edit_AllowAdjustColumnWidth,
    true // 启用
);

// 设置工作表外观 - 显示行列标题和参考线
sheet1.EnableSettings(
    ReoGrid.WorksheetSettings.View_ShowColumnHeader |
    ReoGrid.WorksheetSettings.View_ShowRowHeader |
    ReoGrid.WorksheetSettings.View_ShowGuideLine
);
```

> **说明：**
> 1. 在 aardio 中，设置项使用按位或(`|`)操作符组合多个选项
> 2. `EnableSettings` 和 `DisableSettings` 方法用于快速启用/禁用单个或多个设置
> 3. `SetSettings` 方法可以更精确地控制设置项的启用状态
> 4. `HasSetting` 方法用于检查特定设置是否已启用