> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# IImageViewerEvents インターフェイスの OnToolChangeTable メソッド

> Windows 上の ABBYY FineReader Engine Visual Components における IImageViewerEvents インターフェイスの OnToolChangeTable メソッド — このメソッドはクライアント側で実装されます。

このメソッドはクライアント側で実装されます。[Image Viewer](/ja/fine-reader/engine/visual-components-reference/imageviewer) のツールを使って修正したテーブルブロックに対して変更を加える前に、ABBYY FineReader Engine から呼び出されます。

* <img src="https://mintcdn.com/abbyy/i-EfCQVmseNiPQcp/images/fine-reader/engine/tb_vertline.gif?s=0310d84f26192721ab13164545559986" alt="tb_VertLine" width="23" height="22" data-path="images/fine-reader/engine/tb_vertline.gif" /> 垂直区切り線の追加 ([MI\_ChooseTool\_AddVertSeparator](/ja/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_addvertseparator))
* <img src="https://mintcdn.com/abbyy/i-EfCQVmseNiPQcp/images/fine-reader/engine/tb_horizontline.gif?s=49d36c57e5067d16666945864c31f102" alt="tb_horizontLine" width="23" height="22" data-path="images/fine-reader/engine/tb_horizontline.gif" /> 水平区切り線の追加 ([MI\_ChooseTool\_AddHorizSeparator](/ja/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_addhorizseparator))
* <img src="https://mintcdn.com/abbyy/i-EfCQVmseNiPQcp/images/fine-reader/engine/tb_delline.gif?s=f1548dc0be446f4e53efd531e4bc6e15" alt="tb_delLine" width="23" height="22" data-path="images/fine-reader/engine/tb_delline.gif" /> 区切り線の削除 ([MI\_ChooseTool\_DeleteSeparator](/ja/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands#mi_choosetool_deleteseparator))

これらのツールの選択方法については、[Image Viewer Commands](/ja/fine-reader/engine/visual-components-reference/imageviewer/image-viewer-commands) の説明を参照してください。

このメソッドは、変更対象のテーブルブロックのインデックスと、追加または削除される区切り線の位置および種類をクライアントに渡します。このメソッドを使用すると、この操作をキャンセルできます。

<div id="syntax">
  ## 構文
</div>

<div id="c">
  ### C++
</div>

```cpp theme={null}
HRESULT OnToolChangeTable(
  int           BlockIndex,
  int           Position,
  VARIANT_BOOL  IsVerticalSeparator,
  VARIANT_BOOL  DeleteSeparator,
  VARIANT_BOOL* Cancel
);
```

### C\#

```csharp theme={null}
void OnToolChangeTable(
  int      BlockIndex,
  int      Position,
  bool     IsVerticalSeparator,
  bool     deleteSeparator,
  out bool Cancel
);
```

<div id="visual-basic-net">
  ### Visual Basic .NET
</div>

```vb theme={null}
Sub OnToolChangeTable( _
  BlockIndex As Integer, _
  Position As Integer, _
  IsVerticalSeparator As Boolean, _
  DeleteSeparator As Integer, _
  ByRef Cancel As Boolean _
)
```

<div id="parameters">
  ## Parameters
</div>

BlockIndex

\[in] 変更対象のテーブルブロックのインデックスを格納します。インデックスは [ILayout::VisualBlocks](/ja/fine-reader/engine/api-reference/layout-related-objects/layout#visualblocks) コレクション内のものです。

Position

\[in] テーブル内の区切り線の位置を格納します。区切り線の位置は、ベースグリッド上の座標で表されます。

IsVerticalSeparator

\[in] 区切り線が縦方向か横方向かを指定します。

DeleteSeparator

\[in] 区切り線を削除するか追加するかを指定します。

Cancel

\[out] この変数を TRUE に設定すると、処理を中止するよう示すことができます。この場合、区切り線は追加 (または削除) されません。

<div id="return-values">
  ## 戻り値
</div>

\[C++ のみ] このメソッドが S\_OK 以外の値を返した場合は、クライアント側でエラーが発生したことを示します。この場合、Cancel パラメーターの値は無視されます。

<div id="remarks">
  ## 注記
</div>

* ここでいうベースグリッドとは、表の罫線と区切り線で構成されるグリッドを指します。縦方向の区切り線が 1 本増えるごとに水平方向の座標が 1 増加し、横方向の区切り線が 1 本増えるごとに垂直方向の座標が 1 増加します。座標軸は、左から右、上から下の向きです。
* このメソッドのクライアント実装では、メソッド内でスローされるすべての例外を確実にキャッチして処理し、例外がメソッドの外部に伝播しないようにする必要があります。例外がメソッドの外部に伝播すると、予期しない結果 (プログラムの終了など) を招くおそれがあります。

<div id="see-also">
  ## 関連項目
</div>

[IImageViewerEvents](/ja/fine-reader/engine/visual-components-reference/iimageviewerevents)
