TX Text Control 中表格操作之获取选中单元格坐标

TX Text Control 中为表格操作提供的丰富的编程接口,可以通过代码和集成对话框完成表格的插入、删除、合并、拆分以及表格样式设置等操作。本文主要是讲解如何获取当前表格中选中的单元格坐标。基本思路是获取TX中当前选中的范围,然后将单元格的坐标与选中范围作比较,以确定单元格是否被选中。

发布于 2013/09/25 00:00

TX Text Control 中为表格操作提供的丰富的编程接口,可以通过代码和集成对话框完成表格的插入、删除、合并、拆分以及表格样式设置等操作。本文主要是讲解如何获取当前表格中选中的单元格坐标。基本思路是获取TX中当前选中的范围,然后将单元格的坐标与选中范围作比较,以确定单元格是否被选中。

代码如下:

    // 获取选中的单元格坐标
    private string GetSelectedCells() 
    {
        StringBuilder sb = new StringBuilder();
        Table table = textControl1.Tables.GetItem();
            
        Selection curSelection = new Selection(textControl1.Selection.Start,textControl1.Selection.Length);
        textControl1.Selection.Length = 0;
        // 获取选中单元格的起始单元格坐标
        int iTableStartRow = table.Cells.GetItem().Row;
        int iTableStartCol = table.Cells.GetItem().Column;
            
        if (curSelection.Length != 0)
        {
            textControl1.Selection.Start = curSelection.Start + curSelection.Length - 1;
        }
            
        // 获取选中单元格截止单元格坐标
        int iTableEndRow = table.Cells.GetItem().Row;
        int iTableEndCol = table.Cells.GetItem().Column;
        // 循环所有单元格以检查当前单元格是否在选中单元格范围内
        foreach (TableCell cell in textControl1.Tables.GetItem().Cells)
        {
            if (cell.Row >= iTableStartRow && cell.Row <= iTableEndRow && cell.Column <= iTableEndCol && cell.Column >= iTableStartCol)
                sb.Append(string.Format("[{0},{1}] ",cell.Row,cell.Column));
        }
        return sb.ToString();
    }

SelectedTableCells

源码下载:TX Text Control for WinForms X9

 

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态