为Spread网格线添加拖动改变列宽的功能

Spread for WinForms 默认提供了在列头和行头上的拖动操作来改变列宽和行高的支持,不过在数据区域的网格线上的拖动操作不支持改变列宽和行高的功能,本文主要目的也是添加这一功能。

发布于 2013/01/15 00:00

Spread for WinForms 默认提供了在列头和行头上的拖动操作来改变列宽和行高的支持,不过在数据区域的网格线上的拖动操作不支持改变列宽和行高的功能,本文主要目的也是添加这一功能。

我们主要会用到Spread的MouseDown,MouseMove和MouseUp事件,代码如下:

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        int start = 0;
        float width = 0;
        bool mousedown = false;


        private void Form1_Load(object sender, EventArgs e)
        {
            fpSpread1.ActiveSheet.ColumnHeader.Visible = false;
            fpSpread1.MouseDown += new MouseEventHandler(fpSpread1_MouseDown);
            fpSpread1.MouseUp += new MouseEventHandler(fpSpread1_MouseUp);
            fpSpread1.MouseMove += new MouseEventHandler(fpSpread1_MouseMove);
        }
        
        private void fpSpread1_MouseMove(object sender, MouseEventArgs e)
        {
            if (mousedown && e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                fpSpread1.ActiveSheet.ActiveColumn.Width = width + (e.X - start);
            }
        }

        void fpSpread1_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                fpSpread1.Cursor = Cursors.VSplit;
                start = e.X;
                mousedown = true;
                width = fpSpread1.ActiveSheet.ActiveColumn.Width;
            }
        }

        void fpSpread1_MouseUp(object sender, MouseEventArgs e)
        {
            if (mousedown && e.Button == System.Windows.Forms.MouseButtons.Left)
            {
                start = 0;
                width = 0;
                mousedown = false;
            }
        }
    }

源码下载:VS2010 + Spread .NET 6.0 7664_Width.zip (10.10 kb)

关于葡萄城

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

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

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

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