マウスイベント

ReoGridは、セルとのマウス操作を処理するために、ワークシート上で5つのマウスイベントを提供しています。

名前空間

using unvell.ReoGrid;
using unvell.ReoGrid.Events;
using unvell.ReoGrid.Interaction;

イベント

イベント説明
CellMouseDownセル上でマウスボタンが押された時に発生します
CellMouseUpセル上でマウスボタンが離された時に発生します
CellMouseMoveセル上でマウスが移動した時に発生します
CellMouseEnterマウスポインタがセルに入った時に発生します
CellMouseLeaveマウスポインタがセルから出た時に発生します

すべてのイベントはCellMouseEventArgsを使用します。

CellMouseEventArgsのプロパティ

プロパティ説明
CellCellセルのインスタンス。セルにデータやスタイルが設定されていない場合はnullになる可能性があります
CellPositionCellPositionセルのゼロベースの位置(常に利用可能)
ButtonsMouseButtons押されているマウスボタン
RelativePositionPointセルに対するマウスの相対位置
AbsolutePositionPointコントロールに対するマウスの相対位置
Clicksintクリック回数(ダブルクリック検出用)
Deltaintマウスホイールのデルタ値(ホイールイベントでのみ使用)
Captureboolマウスをキャプチャするかどうかの取得・設定
CursorStyleCursorStyleカーソルスタイルの取得・設定
IsCancelledbooltrueに設定するとReoGridのデフォルト操作をキャンセルします
WorksheetWorksheetワークシートのインスタンス

注意: Cellプロパティは、セルにデータやスタイルがない場合はnullになる可能性があります。有効なセルインスタンスを確実に取得するには、sheet.CreateAndGetCell(e.CellPosition)を使用してください。

CursorStyle列挙型

説明
PlatformDefaultデフォルトカーソル
Handハンドカーソル
Selection範囲選択カーソル
FullRowSelect行全体セレクター
FullColumnSelect列全体セレクター
EntireSheetシート全体セレクター
Moveオブジェクト移動
Copyオブジェクトコピー
ChangeColumnWidth列幅リサイズ
ChangeRowHeight行高さリサイズ
ResizeHorizontal水平リサイズ
ResizeVertical垂直リサイズ
Busyビジー/待機中
Cross十字カーソル

使用例

セルマウスダウン

sheet.CellMouseDown += (s, e) =>
{
    // Safe: always use CellPosition, not Cell (which may be null)
    var cell = sheet.CreateAndGetCell(e.CellPosition);
    Console.WriteLine($"Clicked cell {e.CellPosition}: {cell.Data}");
};

セルマウスアップ

sheet.CellMouseUp += (s, e) =>
{
    Console.WriteLine($"Mouse released at {e.CellPosition}, button: {e.Buttons}");
};

セルマウス進入/退出

sheet.CellMouseEnter += (s, e) =>
{
    // Highlight on hover
    if (e.Cell != null)
    {
        e.Cell.Style.BackColor = SolidColor.LightYellow;
    }
};

sheet.CellMouseLeave += (s, e) =>
{
    if (e.Cell != null)
    {
        sheet.RemoveRangeStyles(e.CellPosition, PlainStyleFlag.BackColor);
    }
};

デフォルト動作のキャンセル

sheet.CellMouseDown += (s, e) =>
{
    if (e.CellPosition.Col == 0)
    {
        // Prevent selection on first column
        e.IsCancelled = true;
    }
};

カーソルスタイルの変更

sheet.CellMouseMove += (s, e) =>
{
    if (e.Cell?.Data != null)
    {
        e.CursorStyle = CursorStyle.Hand;
    }
};

ダブルクリックの検出

sheet.CellMouseDown += (s, e) =>
{
    if (e.Clicks == 2)
    {
        Console.WriteLine($"Double-clicked on {e.CellPosition}");
    }
};

関連トピック


ページの内容は役に立ちましたか?