第14章-事件处理与交互

第十四章:事件处理与交互

14.1 单元格事件

using unvell.ReoGrid.Events;

public class CellEvents
{
    public void RegisterCellEvents(Worksheet sheet)
    {
        // 单元格数据变化
        sheet.CellDataChanged += (s, e) =>
        {
            Console.WriteLine($"单元格 {e.Cell.Address} 数据已更改为: {e.Cell.Data}");
        };
        
        // 单元格编辑前
        sheet.BeforeCellEdit += (s, e) =>
        {
            // 可以阻止编辑
            if (e.Cell.Row == 0)
            {
                e.IsCancelled = true;  // 禁止编辑第一行
            }
        };
        
        // 单元格编辑中
        sheet.CellEdit += (s, e) =>
        {
            Console.WriteLine("正在编辑单元格: " + e.Cell.Address);
        };
    }
}

14.2 选择事件

public class SelectionEvents
{
    public void RegisterSelectionEvents(Worksheet sheet)
    {
        // 选择区域变化
        sheet.SelectionRangeChanged += (s, e) =>
        {
            Console.WriteLine($"选择区域: {e.Range}");
        };
        
        // 焦点单元格变化
        sheet.FocusPosChanged += (s, e) =>
        {
            Console.WriteLine($"焦点移至: {e.Position}");
        };
    }
}

14.3 工作表事件

public class WorksheetEvents
{
    public void RegisterWorksheetEvents(Worksheet sheet)
    {
        // 行插入
        sheet.RowsInserted += (s, e) =>
        {
            Console.WriteLine($"插入了 {e.Count} 行,起始行: {e.Index}");
        };
        
        // 行删除
        sheet.RowsDeleted += (s, e) =>
        {
            Console.WriteLine($"删除了 {e.Count} 行");
        };
        
        // 列插入
        sheet.ColumnsInserted += (s, e) =>
        {
            Console.WriteLine($"插入了 {e.Count} 列");
        };
    }
}

14.4 鼠标和键盘事件

public class InputEvents
{
    public void RegisterInputEvents(ReoGridControl grid)
    {
        // 鼠标点击
        grid.CellMouseDown += (s, e) =>
        {
            Console.WriteLine($"鼠标点击: {e.CellPosition}");
        };
        
        // 键盘按下
        grid.CellKeyDown += (s, e) =>
        {
            if (e.KeyCode == Keys.Delete)
            {
                Console.WriteLine("按下删除键");
            }
        };
    }
}

14.5 本章小结

本章介绍了ReoGrid的事件处理机制。

📚 下一章预告

第十五章将学习自定义单元格类型。

posted @ 2025-12-31 14:07  我才是银古  阅读(10)  评论(0)    收藏  举报